All snap plugins should be independent of external snaps. In the case of Go plugin it depends on the
go snap, which is problematic when building snaps inside Docker.
Is there a reason the Go plugin uses the snap instead of download the binaries from official page https://go.dev/dl/ – Just like the npm plugin.
It would be really helpful to get a list of plugins that depend on other snaps.
In general the biggest attraction of using Docker instead of LXD/Multipass is that, in many companies docker is well integrated into the overall CI process and the fact that docker has very good cross-platform/cross-architecture support, which always works.
snapcraft has a little documented flag
--destructive-mode which will pollute the host environment. If that’s a docker container then it’s a non-issue since docker CI containers are supposed to be ephemeral anyway. I wonder if this would help build inside a docker container instead of trying to run lxc/multipass.
This is the case with core22 plugins. The plugins will use whatever is available on the system, and it’s up to the user to provide a suitable environment.
go plugin would have the ability to download golang during the build process. Instead of the need to create a one big docker container. But yeah, including Golang work in general.
I am also looking to figure out what other snap plugins depend on other snaps, That will allow us to create on universal docker container that people can use to build
core22 based snaps at least.