examples: make buildkit3 use readonly where possible

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
docker-18.09
Tonis Tiigi 2017-07-18 13:29:52 -07:00
parent ff951eecd9
commit e3af8f57ab
1 changed files with 7 additions and 7 deletions

View File

@ -45,15 +45,15 @@ func goRepo(s *llb.State, repo string, src *llb.State) func(ro ...llb.RunOption)
dir := "/go/src/" + repo dir := "/go/src/" + repo
return func(ro ...llb.RunOption) *llb.State { return func(ro ...llb.RunOption) *llb.State {
es := s.Dir(dir).Run(ro...) es := s.Dir(dir).Run(ro...)
es.AddMount(dir, src) es.AddMount(dir, src, llb.Readonly)
return es.AddMount(dir+"/bin", llb.Scratch()) return es.AddMount("/out", llb.Scratch())
} }
} }
func runc(version string) *llb.State { func runc(version string) *llb.State {
repo := "github.com/opencontainers/runc" repo := "github.com/opencontainers/runc"
return goRepo(goBuildBase(), repo, llb.Git(repo, version))( return goRepo(goBuildBase(), repo, llb.Git(repo, version))(
llb.Shlex("go build -o ./bin/runc ./"), llb.Shlex("go build -o /out/runc ./"),
) )
} }
@ -63,7 +63,7 @@ func containerd(version string) *llb.State {
goBuildBase(). goBuildBase().
Run(llb.Shlex("apk add --no-cache btrfs-progs-dev")).Root(), Run(llb.Shlex("apk add --no-cache btrfs-progs-dev")).Root(),
repo, llb.Git(repo, version, llb.KeepGitDir()))( repo, llb.Git(repo, version, llb.KeepGitDir()))(
llb.Shlex("make bin/containerd"), llb.Shlex("go build -o /out/containerd ./cmd/containerd"),
) )
} }
@ -75,11 +75,11 @@ func buildkit(opt buildOpt) *llb.State {
} }
run := goRepo(goBuildBase(), repo, src) run := goRepo(goBuildBase(), repo, src)
builddStandalone := run(llb.Shlex("go build -o ./bin/buildd-standalone -tags standalone ./cmd/buildd")) builddStandalone := run(llb.Shlex("go build -o /out/buildd-standalone -tags standalone ./cmd/buildd"))
builddContainerd := run(llb.Shlex("go build -o ./bin/buildd-containerd -tags containerd ./cmd/buildd")) builddContainerd := run(llb.Shlex("go build -o /out/buildd-containerd -tags containerd ./cmd/buildd"))
buildctl := run(llb.Shlex("go build -o ./bin/buildctl ./cmd/buildctl")) buildctl := run(llb.Shlex("go build -o /out/buildctl ./cmd/buildctl"))
r := llb.Image("docker.io/library/alpine:latest").With( r := llb.Image("docker.io/library/alpine:latest").With(
copyAll(buildctl, "/bin"), copyAll(buildctl, "/bin"),