Commit Graph

686 Commits (61ff7dfcdd06f90743f66865dda73f662bfba24b)

Author SHA1 Message Date
Akihiro Suda 61ff7dfcdd
Merge pull request #348 from tonistiigi/multi-key
solver: add support for multiple cache keys
2018-04-25 17:16:40 +09:00
Tonis Tiigi 3468d866e2 solver: add support for multiple cache keys
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-24 16:12:25 -07:00
Akihiro Suda 8426766504
Merge pull request #347 from tonistiigi/fix-copy-vars
dockerfile: fix context path detection for var substitution
2018-04-24 12:19:15 +09:00
Tonis Tiigi 864adf02dd dockerfile: fix context path detection for var substitution
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-23 11:37:53 -07:00
Akihiro Suda 7e7655c582
Merge pull request #346 from tonistiigi/skip-manifest-resolve
dockerfile: allow skipping resolving manifest
2018-04-20 14:17:50 +09:00
Tonis Tiigi 8b85812dda dockerfile: allow skipping resolving manifest
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-19 21:39:58 -07:00
Akihiro Suda c478340035
Merge pull request #344 from tonistiigi/runc-cmd-fix
runc: set command name from config
2018-04-19 11:24:35 +09:00
Tonis Tiigi bab967b352 runc: set command name from config
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-18 17:01:20 -07:00
Akihiro Suda cf9188cee1
Merge pull request #341 from tonistiigi/authprovider
session: separate authprovider to package
2018-04-18 13:27:00 +09:00
Akihiro Suda 93de570051
Merge pull request #342 from tonistiigi/runc-command
runc: make command name configurable
2018-04-18 13:26:41 +09:00
Tonis Tiigi 2dba0488c8 runc: make command name configurable
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-17 20:39:19 -07:00
Tonis Tiigi 7ac9599c8f session: separate authprovider to package
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-17 20:36:23 -07:00
Akihiro Suda 4d4f369838
Merge pull request #338 from tonistiigi/cachekey-refactor
solver-next: cachekey refactor
2018-04-17 12:53:21 +09:00
Akihiro Suda fc2b7c558a
Merge pull request #339 from tonistiigi/dockerfile-copy
dockerfile: copy only files that are used
2018-04-14 22:28:15 +09:00
Tonis Tiigi 0b203b21df dockerfile: copy only files that are used
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-13 21:13:29 -07:00
Akihiro Suda 1a3c680e91
Merge pull request #337 from tonistiigi/push-provider
util: make push depend on provider
2018-04-14 12:57:44 +09:00
Tonis Tiigi 64b9daabc7 boltdbcache: add missing methods
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-13 14:43:29 -07:00
Tonis Tiigi 01bb816d91 solver: add missing progress handlers
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-13 14:43:29 -07:00
Tonis Tiigi 747dff007b solver: reimplement edge index with tests
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-13 14:43:23 -07:00
Tonis Tiigi 659a21bda9 solver: update exporter tests to check targets
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-13 14:40:06 -07:00
Tonis Tiigi 32f7a01fe7 solver: remove CacheKey interface
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-13 14:39:57 -07:00
Tonis Tiigi 7e18e4a579 util: make push depend on provider
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-13 14:35:55 -07:00
Tõnis Tiigi 243f742ac2
Merge pull request #336 from ijc/configure-unix-socket-group-ownership
buildkitd: allow setting group of /var/run/buildkit/buildkitd.sock
2018-04-12 10:22:41 -07:00
Ian Campbell 7b739d32a7 buildkitd: allow setting group ownership of /var/run/buildkit/buildkitd.sock
While buildkitd needs to run as root (since both workers currently imply that)
there's no reason to enforce running the client as root, it works just fine (in
my slightly limited testing) as non-root so long as it has access to the sock

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-11 14:34:39 +01:00
Akihiro Suda ef8e683ffa
Merge pull request #335 from tonistiigi/git-cancellation
git: fix cancellation on blocking remotes
2018-04-11 14:06:50 +09:00
Tonis Tiigi 641fdea51b git: fix cancellation on blocking remotes
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-04-10 17:55:18 -07:00
Tõnis Tiigi 89f8bc1c02
Merge pull request #329 from AkihiroSuda/containerd-20180403
update containerd (binary: v1.0.3, library: Apr 3, 2018)
2018-04-04 10:05:42 -07:00
Akihiro Suda 126f91dea7 update containerd (binary: v1.0.3, library: Apr 3, 2018)
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2018-04-04 17:22:20 +09:00
Akihiro Suda aabfa3b84a
Merge pull request #324 from ijc/readonly-rootfs-execop
Make llb.ReadonlyRootFS usable with common container images
2018-04-04 11:43:44 +09:00
Tõnis Tiigi 2aa3554778
Merge pull request #330 from ijc/bump-protobuf
Consolidate gogoproto versions
2018-04-03 10:01:47 -07:00
Ian Campbell 8a51342bd5 Correct instructional message
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-03 13:45:50 +01:00
Ian Campbell ec18d4ead1 generate-files: auto sync gogo version to vendor.conf
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-03 13:45:50 +01:00
Ian Campbell d9b64588cb Regenerate protobuf go file with gogoproto v0.5
This matches the version in vendor.conf, the previous version was `v0.5~25`
according to `git describe`.

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-03 13:45:50 +01:00
Ian Campbell 2e6adc027d Reduce code duplication with a closure.
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-03 11:13:15 +01:00
Ian Campbell ddae5a6ea4 Make llb.ReadonlyRootFS usable with common container images
e.g. with busybox image:

    OCI runtime create failed: container_linux.go:348:
    starting container process caused "process_linux.go:402:
    container init caused \"rootfs_linux.go:58:
    mounting \\\"proc\\\" to rootfs \\\"/.../rootfs\\\" at \\\"/proc\\\"
    caused \\\"mkdir /.../rootfs/proc: read-only file system\\\"\"": unknown

This is because we were setting the underlying snapshot readonly so the various
mountpoints (here /proc) cannot be created. This would not be necessary if
those mountpoints were present in images but they typically are not.

The right way to get around this (used e.g. by `ctr`) is to use a writeable
snapshot but to set root readonly in the OCI spec. In this configuration the
rootfs is writeable when mounts are processed but is then made readonly by the
runtime (runc) just before entering the user specified binary within the
container.

This involved a surprising amount of plumbing.

Use this new found ability in the dockerfile converter's `dispatchCopy`
function.

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-03 11:04:07 +01:00
Ian Campbell 4bae684e32 Invert tags on runc worker test so they run by default.
Signed-off-by: Ian Campbell <ijc@docker.com>
2018-04-03 11:01:46 +01:00
Tõnis Tiigi 914fce58ee
Merge pull request #328 from AkihiroSuda/disallow-empty-output
client: disallow empty output for exportation
2018-04-01 21:44:17 -07:00
Akihiro Suda 3dd4d12796 client: disallow empty output for exportation
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2018-04-02 13:22:44 +09:00
Tõnis Tiigi 44b843d50d
Merge pull request #323 from ijc/protobuf-regen
Validation and (controlled) generation for go generate'd files.
2018-03-28 10:12:14 -07:00
Ian Campbell 17069fe7e4 Validation and (controlled) generation for go generate'd files.
Modelled after the vendor support provide a validator and an updator for files
produced by `go generate` (which today just means `*.pb.go`).

Main difference from the vendor support is that we are no longer simply nuking
and replacing a single directory, so I ended up hardcoding `*.pb.go` in a bunch
of places which I don't like but cannot see a way around which doesn't risk
nuking people's other local changes.

The generated files are placed in an unpacked form in a `FROM scratch`
container for update. Use a subdirectory and `tar --strip-components` (portable
to MacOS and Linux according to `tar(1)`) since trying to do a `docker export`
of just the root ends up adding `.dockerenv`, `sys`, `proc` and `dev` to the
source tree.

The validate container is not `FROM scratch` because we want `cat`.

The run in `frontend/gateway/pb/generate.go` was missing an include so fix
that.

The versions of `protoc` and the gogo plugins were chosen to regenerate the
existing code as closely as possible. The updates to `*.pg.go` here are all the
result of regenerating with go1.9 which fixed
https://github.com/golang/go/issues/17663 and replaced an invalid timestamp in
the gzip header of the data encoded in `fileDescriptor*`, and adopted a new
standard for marking generated files.

Finally, I noticed that my `docker run`s were missing an `--rm` which I
inherited from `validate-vendor`, so fix all those.

Closes: #322

Signed-off-by: Ian Campbell <ijc@docker.com>
2018-03-28 10:52:16 +01:00
Vincent Demeester 117be599b5
Merge pull request #326 from AkihiroSuda/bud-pipe
client: support passing io.WriteCloser via SolveOpt for FSSyncTargetFile
2018-03-28 09:43:49 +02:00
Akihiro Suda 9ef8233da1 client: support passing io.WriteCloser via SolveOpt for FSSyncTargetFile
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2018-03-28 15:48:54 +09:00
Tõnis Tiigi a0a7301ea0
Merge pull request #312 from tonistiigi/throttle-gc
worker: throttle calls to gc
2018-03-26 09:34:35 -07:00
Tõnis Tiigi 5b499d557b
Merge pull request #321 from jessfraz/seccomp
add containerd package for default seccomp profile
2018-03-23 10:14:09 -07:00
Jess Frazelle 4158ef3851
add seccomp to binary building
Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
2018-03-23 12:59:15 -04:00
Akihiro Suda 1cf2daae92
Merge pull request #320 from tonistiigi/contentutil
util: add contentutil helpers
2018-03-23 10:09:15 +09:00
Tonis Tiigi 0702303f6c imagemetaresolver: switch to contentutil buffer
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-03-22 16:19:56 -07:00
Tonis Tiigi 05da9869bd util: add contentutil helpers
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-03-22 16:19:49 -07:00
Jess Frazelle 863736d818
add containerd package for default seccomp profile
Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
2018-03-22 12:25:55 -04:00
Tõnis Tiigi 9f8547022b
Merge pull request #319 from ijc/check-mount-source
Check that mounts have a Source when generating the OCI spec
2018-03-22 08:53:28 -07:00