coder / terraform-provider-envbuilder

Mozilla Public License 2.0
5 stars 0 forks source link

feat: support platforms other than Linux #26

Open johnstcn opened 1 month ago

johnstcn commented 1 month ago

This provider currently only builds for GOOS=linux:

GOOS=darwin CGO_ENABLED=0 go build .
# github.com/docker/docker/volume/mounts
../../../go/pkg/mod/github.com/docker/docker@v26.1.4+incompatible/volume/mounts/mounts.go:187:30: undefined: safepath.Join
# github.com/GoogleContainerTools/kaniko/pkg/snapshot
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/snapshot/snapshot.go:182:39: undefined: unix.SYS_SYNCFS
# github.com/docker/docker/libcontainerd/types
../../../go/pkg/mod/github.com/docker/docker@v26.1.4+incompatible/libcontainerd/types/types.go:88:31: undefined: Stats
../../../go/pkg/mod/github.com/docker/docker@v26.1.4+incompatible/libcontainerd/types/types.go:91:34: undefined: Summary
../../../go/pkg/mod/github.com/docker/docker@v26.1.4+incompatible/libcontainerd/types/types.go:98:50: undefined: Resources
# github.com/coder/envbuilder/internal/ebutil
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/internal/ebutil/remount.go:151:47: undefined: syscall.MS_BIND
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/internal/ebutil/remount.go:189:17: undefined: syscall.Mount
$ GOOS=windows CGO_ENABLED=0 go build .
# github.com/coder/envbuilder/devcontainer
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/devcontainer/script.go:88:4: unknown field Credential in struct literal of type syscall.SysProcAttr
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/devcontainer/script.go:88:25: undefined: syscall.Credential
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/devcontainer/script.go:100:24: undefined: syscall.ForkExec
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/devcontainer/script.go:116:24: undefined: syscall.ForkExec
# github.com/GoogleContainerTools/kaniko/pkg/util
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/syscall_credentials.go:29:51: undefined: syscall.Credential
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/syscall_credentials.go:44:17: undefined: groupIDs
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/syscall_credentials.go:64:18: undefined: syscall.Credential
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/tar_util.go:241:46: undefined: syscall.Stat_t
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/fs_util.go:667:37: undefined: syscall.Stat_t
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/fs_util.go:767:34: undefined: syscall.Stat_t
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/fs_util.go:770:34: undefined: syscall.Stat_t
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/fs_util.go:1145:32: undefined: syscall.Stat_t
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/fs_util.go:1330:30: undefined: syscall.Stat_t
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/fs_util.go:1332:30: undefined: syscall.Stat_t
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/syscall_credentials.go:64:18: too many errors
# github.com/coder/envbuilder/internal/ebutil
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/internal/ebutil/remount.go:151:47: undefined: syscall.MS_BIND
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/internal/ebutil/remount.go:189:17: undefined: syscall.Mount
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/internal/ebutil/remount.go:193:17: undefined: syscall.Unmount
$ GOOS=freebsd CGO_ENABLED=0 go build .
# github.com/docker/docker/volume/mounts
../../../go/pkg/mod/github.com/docker/docker@v26.1.4+incompatible/volume/mounts/mounts.go:187:30: undefined: safepath.Join
# github.com/docker/docker/libcontainerd/types
../../../go/pkg/mod/github.com/docker/docker@v26.1.4+incompatible/libcontainerd/types/types.go:88:31: undefined: Stats
../../../go/pkg/mod/github.com/docker/docker@v26.1.4+incompatible/libcontainerd/types/types.go:91:34: undefined: Summary
../../../go/pkg/mod/github.com/docker/docker@v26.1.4+incompatible/libcontainerd/types/types.go:98:50: undefined: Resources
# github.com/docker/docker/daemon/graphdriver
../../../go/pkg/mod/github.com/docker/docker@v26.1.4+incompatible/daemon/graphdriver/driver_freebsd.go:15:38: cannot use &buf (value of type *"golang.org/x/sys/unix".Statfs_t) as *syscall.Statfs_t value in argument to syscall.Statfs
# github.com/GoogleContainerTools/kaniko/pkg/util
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/syscall_credentials.go:44:17: undefined: groupIDs
../../../go/pkg/mod/github.com/coder/kaniko@v0.0.0-20240807142221-ffc5e60fca41/pkg/util/util.go:255:29: undefined: unix.ENODATA
# github.com/coder/envbuilder/internal/ebutil
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/internal/ebutil/remount.go:151:47: undefined: syscall.MS_BIND
../../../go/pkg/mod/github.com/coder/envbuilder@v1.0.0-rc.0.0.20240807151028-6e5bfa5faa29/internal/ebutil/remount.go:189:17: undefined: syscall.Mount
matifali commented 3 weeks ago

Does it mean it can't be used if Terraform runs on a macOS or Windows provider?

johnstcn commented 3 weeks ago

Yes, the provider binary currently cannot be compiled on macOS or Windows so it will not be usable on those platforms unless Terraform is run in a VM.