Commit Graph

674 Commits (a558ac4ccebc2e193a0147ed34f5b0c7979a0e95)

Author SHA1 Message Date
Morlay 18b49fd7dc refactor to use util/bklog instead of using logurs directly
Signed-off-by: Morlay <morlay.null@gmail.com>
2021-07-13 11:42:31 +08:00
Tõnis Tiigi 9df59934cd
Merge pull request #2218 from tonistiigi/error-suggest
dockerfile: add suggestions to how to fix certain errors
2021-07-07 10:52:07 -07:00
Tonis Tiigi 259fba7d43 dockerfile: move run network to stable channel
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-07-06 15:25:29 -07:00
Tonis Tiigi 4e4152832c dockerfile: remove unnecessary error wrappings
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-07-02 17:29:32 -07:00
Tonis Tiigi de5e10864d dockerfile: add tests for error suggestions
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-07-02 17:29:32 -07:00
Tonis Tiigi df9781b46c dockerfile: provide suggestions for mount options
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-07-02 17:29:32 -07:00
Tonis Tiigi 768a12bd0d dockerfile: suggest mistyped flag names
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-07-02 17:29:32 -07:00
Tonis Tiigi 277517e2a3 add error suggest pkg
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-07-02 17:29:27 -07:00
Tõnis Tiigi f5c34a05b8
Merge pull request #2047 from thaJeztah/improve_errors
Remove duplicate "not found" from some error messages
2021-07-01 21:36:33 -07:00
Tõnis Tiigi 521727e9e2
Merge pull request #2201 from jedevc/dockerfile-heredocs-progress
Improve progress and history messages for heredoc-related commands
2021-07-01 12:46:31 -07:00
Tõnis Tiigi 5840ec0de1
Merge pull request #2213 from jedevc/dockerfile-heredoc-parsing
Improve heredoc parsing to allow more generic shell-words
2021-07-01 12:46:14 -07:00
Justin Chadwell c99b558ec3 Improve progress and history messages for heredoc-related commands
Signed-off-by: Justin Chadwell <me@jedevc.com>
2021-07-01 09:15:51 +01:00
Justin Chadwell ec1bfc88f6 Improve heredoc parsing to allow more generic words
Previously, heredoc names were restricted to simple alphanumeric
strings. However, heredocs should support much more complex use-cases,
including quoting anywhere, as well as allowing special symbols like `.`
for easily expressing file extensions.

This patch adds support for these more complex cases, by using the shell
lexer to parse each heredoc name. Additionally, we include improvements
to the lexer to optionally preserve escape tokens to avoid problems when
lexing words that have already been lexed before.

Signed-off-by: Justin Chadwell <me@jedevc.com>
2021-07-01 09:13:58 +01:00
Akihiro Suda 8d70a9e098
Merge pull request #2215 from tonistiigi/improve-errors
Improve build errors and remove useless grpc prefix
2021-07-01 14:33:40 +09:00
Tonis Tiigi a27d7c3d81 exec: improve error message on exec errors
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-06-30 21:10:37 -07:00
Akihiro Suda be8ab28a0a
Merge pull request #2081 from tonistiigi/local-differ-none
Allow none differ on local source to avoid false Dockerfile matches
2021-07-01 09:42:24 +09:00
Tõnis Tiigi 921b0de92e
Merge pull request #2209 from jedevc/dockerfile-heredocs-onbuild
Add support for heredocs in the ONBUILD command
2021-06-29 21:33:03 -07:00
Tonis Tiigi ee39f5dd68 dockerfile: use none differ for dockerfile/dockerignore
This avoids wrong metadata matches on small files

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-06-29 16:17:08 -07:00
Justin Chadwell 5ad1ff3e23 Add support for heredocs with ONBUILD
Signed-off-by: Justin Chadwell <me@jedevc.com>
2021-06-29 11:30:09 +01:00
Tonis Tiigi dc86c52cc0 dockerfile: fix git version detection
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-06-28 22:05:55 -07:00
Tonis Tiigi c773a215c1 integration: add common context base to all integration tests
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-06-18 20:49:49 -07:00
Tonis Tiigi 111153eafb dockerfile: ensure config resolve errors keep source location
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-06-16 22:16:16 -07:00
Justin Chadwell e49dc642cf Fix file modes with remote ADD commands
Signed-off-by: Justin Chadwell <me@jedevc.com>
2021-06-14 18:52:13 +01:00
Tõnis Tiigi 4518627f4f
Merge pull request #2132 from jedevc/dockerfile-heredocs
Dockerfile heredocs
2021-06-10 09:23:04 -07:00
Tonis Tiigi fa632c5b21 dockerfile: add documentation for here-docs
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-06-10 08:08:17 -07:00
Justin Chadwell 2d35001217 Add integration tests for dockerfile heredocs
Signed-off-by: Justin Chadwell <me@jedevc.com>
2021-06-09 10:53:25 +01:00
Justin Chadwell de7fcce614 Integrate heredoc support into ADD/COPY and RUN
This modifies the command structures to support inline files, as well as
provides the logic to compile them down into appropriate LLB
definitions.

Signed-off-by: Justin Chadwell <me@jedevc.com>
2021-06-09 10:53:25 +01:00
Justin Chadwell c362e15715 Add support for parsing heredocs in ADD/COPY and RUN
Signed-off-by: Justin Chadwell <me@jedevc.com>
2021-06-09 10:53:20 +01:00
Justin Chadwell aed6932b31 Implement low-level parser primitives for heredocs
This provides the basic functionality for the parser to recognize and
parse provided heredocs in supported commands.

Signed-off-by: Justin Chadwell <me@jedevc.com>
2021-06-09 10:45:48 +01:00
Sebastiaan van Stijn 22dd74ae93
update to go 1.16
This updates all occurrences of Go 1.13 to Go 1.16; also updated
the code that's used to redact credentials in URLs to use the Go
implementation.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-02 00:31:57 +02:00
Edgar Lee 9aeed7b193 Transform relative mountpoints for exec mounts in the executor
Signed-off-by: Edgar Lee <edgarl@netflix.com>
2021-05-20 15:17:27 -07:00
Tõnis Tiigi 1465ce570b
Merge pull request #2089 from omermizr/feature/run-mount-variables
feat(run-mount): add support for variable expansion
2021-05-06 00:20:01 -07:00
Omer Mizrahi aa467196bd feat(run-mount): add support for variable expansion
Signed-off-by: Omer Mizrahi <ommizrah@microsoft.com>
2021-05-05 02:56:39 +03:00
Tõnis Tiigi f113b49307
Merge pull request #2086 from thaJeztah/add_all_proxy
Add "ALL_PROXY" to list of default args / proxy env-vars
2021-04-26 09:09:44 -07:00
Sebastiaan van Stijn a743d4ba02
Add "ALL_PROXY" to list of default args / proxy env-vars
Relates to a82fff6377/docs/packages.md (proxies)

> (..) the first four of these are the standard built-in build-arg options
> available for `docker build`
> (..) The last, `all_proxy`, is a standard var used for socks proxying. Since
> it is not built into `docker build`, if you want to use it, you will need to
> add the following line to the dockerfile:
>
>     ARG all_proxy

Given the we support all other commonly known proxy env-vars by default, it makes
sense to add this one as well.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-04-24 18:19:02 +02:00
Akihiro Suda c47972dc5a
Merge pull request #2018 from tonistiigi/wildcard-copy
contenthash: include basename in content checksum for wildcards
2021-04-14 15:58:43 +09:00
Sebastiaan van Stijn b81b56e000
Remove duplicate "not found" from some error messages
I noticed this when building a Dockerfile that failed because a file didn't
exist, so went through error messages that looked like they had a duplicate
"not found" in the output;

    [+] Building 0.9s (6/9)
     => [internal] load build definition from Dockerfile                0.2s
     => => transferring dockerfile: 306B                                0.0s
     => [internal] load .dockerignore                                   0.1s
     => => transferring context: 2B                                     0.0s
     => [internal] load metadata for docker.io/library/alpine:latest    0.0s
     => CACHED [1/5] FROM docker.io/library/alpine                      0.0s
     => [internal] load build context                                   0.6s
     => => transferring context: 701B                                   0.5s
     => ERROR [2/5] ADD no-such-file.txt /                              0.0s
    ------
     > [2/5] ADD no-such-file.txt /:
    ------
    failed to compute cache key: "/no-such-file.txt" not found: not found

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-03-29 13:17:06 +02:00
Tonis Tiigi b4364bf4a7 update to new cross toolchain
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-03-23 19:33:11 -07:00
Tonis Tiigi 1982e1e285 contenthash: include basename in content checksum for wildcards
While we generally ignore the basename in this layer, for wildcards
there in no other place to add the basename to the checksum as they
can not be resolved earlier. Before the basename that was in the
checksum was the wildcard itself, so if the wildcard remained same,
content remained same but the file where wildcard pointed to was
renamed, the cache was not invalidated.

Unfortunately, this change breaks cache for all copy commands that
use a wildcard.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-03-23 17:15:50 -07:00
Tonis Tiigi a0ae7f4807 dockerfile: test cache export loop
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-03-16 23:08:42 -07:00
Tõnis Tiigi c5c2af712f
Merge pull request #1994 from kohtala/patch-1
Explain the cache identity
2021-03-14 21:54:37 -07:00
Akihiro Suda 13ea18ad08
vendor containerd (requred for rootless overlayfs on kernel 5.11)
Required for rootless overlayfs on kernel 5.11
https://github.com/containerd/containerd/pull/5076

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2021-03-10 13:51:27 +09:00
Marko Kohtala f2a6e83adc Explain the cache identity
One has doubt his guess of the obvious is correct unless it is mentioned in documentation.

Signed-off-by: Marko Kohtala <marko.kohtala@gmail.com>
2021-02-25 13:11:13 +02:00
Akihiro Suda 19d31737fb
Merge pull request #1963 from tonistiigi/release-count-fixes 2021-02-19 08:22:54 +09:00
Brian Goff adf8f25aa2 Support BUILDKIT_MULTI_PLATFORM arg in Dockerfile
This sets the platform prefix based on the `BUILDKIT_MULTI_PLATFORM`
value (if set).  This is similar to the changes here in
docker/buildx@7f58ad45fa

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2021-02-17 21:47:04 +00:00
Tonis Tiigi 3660e5f9c8 don't commit cache mounts on error
Cache mount instances are shared between multiple vertextes/builds
so if one of the cloned instance gets committed reference count
will get corrupted as other parts of the code still see reference as
mountable.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2021-02-02 23:20:44 -08:00
Sebastiaan van Stijn ebed917e43
frontend/dockerfile: add RunCommand.FlagsUsed field
The FlagsUsed contains a list of flags that were used, which allows the classic
(non-buildkit) builder in dockerd to produce an error when non-supported options
are used in a Dockerfile.

This is a short-term solution; a more permanent solution will be to keep track
of which version of the Dockerfile syntax is supported, and to have the classic
builder pass the maximum supported version of the syntax.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-01-27 13:34:12 +01:00
Tõnis Tiigi dd7fe19951
Merge pull request #1830 from coryb/unknown-exit-status
move UnknownExitStatus to executor package from errdefs
2020-12-28 16:35:14 -08:00
Tibor Vass 1218e37c23 dockerfile/docs: fix frontend image tags
Signed-off-by: Tibor Vass <tibor@docker.com>
2020-12-20 23:24:04 +00:00
Tibor Vass 40a36f455f docs: Change buildkit 0.8.0 -> 0.8.1 and an instance of dockerfile 1.2.0 to 1.2
Signed-off-by: Tibor Vass <tibor@docker.com>
2020-12-15 05:34:11 +00:00