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
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
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
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
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
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
Sebastiaan van Stijn
4e9bae48e7
Revert "Ensure ENTRYPOINT command has at least one argument"
...
This reverts commit 174bcf85ef
.
This commit attempted to fix a situation where an empty entrypoint
was specified, causing a confusing error when running the image,
however, allowing the entrypoint to be reset should be a valid
use-case, and running such image on docker 20.10 at least
produces an informative error;
docker build -t foo -<<'EOF'
FROM busybox
ENTRYPOINT []
EOF
Or, to reset a previously set entrypoint:
docker build -t foo -<<'EOF'
FROM busybox AS one
ENTRYPOINT ["/bin/busybox"]
FROM one AS two
ENTRYPOINT []
EOF
If no command is specified for the image above:
docker run -it --rm foo
docker: Error response from daemon: No command specified.
See 'docker run --help'.
Passing a command to run:
docker run -it --rm foo sh
/#
Given that this commit resulted in a regression/breaking change
this reverts the commit.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-12-03 13:36:52 +01:00
Andrew Chang
174bcf85ef
Ensure ENTRYPOINT command has at least one argument
...
Signed-off-by: Andrew Chang <chang331006@gmail.com>
2020-12-01 15:05:25 -06:00
Tibor Vass
7bdb6592c5
Merge pull request #1693 from tonistiigi/dockerfile-comments
...
dockerfile: parse comments associated with args and stages
2020-10-13 00:20:49 -07:00
Tonis Tiigi
0a7f6ccf5e
dockerfile: parse comments associated with args and stages
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-10-12 23:11:23 -07:00
Tonis Tiigi
906e34510d
dockerfile: update run mounts to stable channel
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-10-04 22:22:08 -07:00
Tonis Tiigi
c810b8ed25
dockerfile: allow multiple values for ARG
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-09-22 11:56:51 -07:00
Tonis Tiigi
5da4a40ae8
lint: enable more linters
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-07-19 09:28:36 -07:00
Chenbin
b7fd382230
add chmod in COPY and ADD command
...
Signed-off-by: Chenbin <chen.bin11@zte.com.cn>
2020-06-10 21:37:46 +08:00
Jörg Franke
5f23bdf9d0
Expand chown value of ADD command
...
Signed-off-by: Jörg Franke <359489+NewJorg@users.noreply.github.com>
2020-05-02 19:37:23 +02:00
Tonis Tiigi
4b2636acca
dockerfile: add more source information to errors
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-04-21 23:46:17 -07:00
Tonis Tiigi
bb484dcce3
dockerfile: remove IsUnknownInstruction
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-04-21 10:44:24 -07:00
Tonis Tiigi
e2835e55ad
dockerfile: store error location in instructions parser
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-04-19 20:56:31 -07:00
Tonis Tiigi
37b8832d00
upgrade errors checks to Is()
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-04-18 22:53:38 -07:00
Tonis Tiigi
c157d8a3ef
dockerfile: remove mix of testing frameworks
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2020-04-14 22:05:41 -07:00
Sebastiaan van Stijn
2105de3499
frontend/dockerfile: show original stagename in error-message
...
Before this change, the error message would show the invalid name in lowercase:
docker build -<<'EOF'
FROM busybox AS foo:$BAR
EOF
[+] Building 0.2s (2/2) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 67B 0.0s
=> [internal] load .dockerignore 0.1s
=> => transferring context: 2B 0.0s
failed to solve with frontend dockerfile.v0: failed to create LLB definition: Dockerfile parse error line 1: invalid name for build stage: "foo:$bar", name can't start with a number or contain symbols
With this patch, the invalid stagename is shown as-is
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-11-26 13:50:40 +01:00
Andy Caldwell
588c07f9b4
Set RunOptions rather than modifying solve state
...
Signed-off-by: Andy Caldwell <andrew.caldwell@metaswitch.com>
2019-08-18 21:45:47 +01:00
Andy Caldwell
5ea3a003f7
Implement support for RUN --network=none|default|host
...
Signed-off-by: Andy Caldwell <andrew.caldwell@metaswitch.com>
2019-08-17 01:44:46 +01:00
Tonis Tiigi
1ac116289d
dockerfile: allow required key only for secret/ssh mounts
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-07-29 15:47:54 -07:00
Tonis Tiigi
add2c8db8a
dockerfile: allow required flag to take value
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-07-26 16:54:20 -07:00
Andrey Smirnov
86e19b621e
Implement frontend support for RUN --security=insecure
...
Example:
RUN --security=insecure cat /proc/self/status | grep CapEff
#84 0.093 CapEff: 0000003fffffffff
Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-07-19 01:01:42 +03:00
Tonis Tiigi
aed5e98d92
dockerfile: allow uid/gid in cache mounts
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-05-22 11:20:15 -07:00
Hao Hu
0248635269
Expand chown value of COPY command
...
Signed-off-by: Hao Hu <hao.hu.fr@gmail.com>
2019-04-06 10:53:05 +02:00
Tonis Tiigi
502de0e0b4
dockerfile: make tmpfs mount readwrite by default
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-04-02 18:14:52 -07:00
Tonis Tiigi
2529762ae7
dockerfile: allow setting file mode/uid for ssh socket
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2019-01-03 11:13:34 -08:00
Tonis Tiigi
12513ba394
dockerfile: remove dfextall build tag
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-10-15 22:27:13 -07:00
Tonis Tiigi
079b429c12
dockerfile: fix ssh required option
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-10-05 14:10:09 -07:00
Akihiro Suda
fa92effc4b
dockerfile: add support for RUN --mount=type=ssh
...
* Needs to be compiled with `dfrunmount dfssh`
* Implemented options:
* `type`(required): needs to be `ssh`
* `target`(optional): the socket path in the container
* `id`(optional): id
Test script:
#!/bin/bash
set -exu -o pipefail
REF=localhost:5000/dfssh:latest
ssh-add -l
sudo buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=frontend/dockerfile/cmd/dockerfile-frontend \
--frontend-opt "build-arg:BUILDTAGS=dfrunmount dfssh" \
--exporter=image --exporter-opt name=$REF --exporter-opt push=true
mkdir -p /tmp/foo
cd /tmp/foo
cat << EOF > Dockerfile
# syntax=$REF
FROM alpine
RUN apk add --no-cache openssh-client
RUN mkdir -p -m 0700 ~/.ssh && ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
RUN --mount=type=ssh ssh git@gitlab.com
# "Welcome to GitLab, @GITLAB_USERNAME_ASSOCIATED_WITH_SSHKEY" should be printed here
EOF
sudo buildctl build --ssh default=$SSH_AUTH_SOCK --progress=plain --frontend=dockerfile.v0 --local context=. --local dockerfile=.
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2018-10-03 14:53:43 +09:00
Tonis Tiigi
d40d557692
dockerfile: fix building dfextall
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-10-02 10:33:18 -07:00
Tonis Tiigi
6daf696f04
dockerfile: add required option for secrets
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-08-28 16:18:08 -07:00
Tonis Tiigi
5e6729e56f
dockerfile: implement secret type mounts
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-08-08 18:12:16 -07:00
Yuichiro Kaneko
93e3b15854
`s/docker file/Dockerfile/`
...
Signed-off-by: Yuichiro Kaneko <spiketeika@gmail.com>
2018-07-19 07:38:58 +09:00
Yuichiro Kaneko
ee15340993
Add a description about metaArgs return value
...
Signed-off-by: Yuichiro Kaneko <spiketeika@gmail.com>
2018-07-18 22:32:15 +09:00
Yuichiro Kaneko
c641b43e4a
Use simple `KeyValuePairOptional` to `dispatchOpt.metaArgs` and `dispatchState.buildArgs`
...
`KeyValuePairOptional` is enough in this case. We can avoid create `ArgCommand` out of Parser
by replacing them with `KeyValuePairOptional`.
Signed-off-by: Yuichiro Kaneko <spiketeika@gmail.com>
2018-07-10 19:24:43 +09:00
Yuichiro Kaneko
ec798d6b09
Update documents of `AddCommand`
...
`ADD` does not support git.
Ref: https://github.com/moby/moby/issues/14704#issuecomment-298134333
Signed-off-by: Yuichiro Kaneko <spiketeika@gmail.com>
2018-07-03 09:25:30 +09:00
Yuichiro Kaneko
a448c8f3fb
Fix a typo
...
Signed-off-by: Yuichiro Kaneko <spiketeika@gmail.com>
2018-06-30 11:20:33 +09:00
Tonis Tiigi
e618878451
dockerfile: platform support
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-06-25 11:06:08 -07:00
Tonis Tiigi
cdcab49bfc
dockerfile: expose cache sharing options
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-06-19 15:57:25 -07:00
Vincent Demeester
79241f25d5
Update tests to use gotest.tools 👼
...
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2018-06-11 15:52:17 +02:00
Tonis Tiigi
6f569455d0
dockerfile: enable tmpfs mounts on run —mount
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-06-08 13:42:38 -07:00
Tonis Tiigi
af03a526e7
dockerfile: run -—mount initial support
...
Supports binds from images and context and cache mounts.
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-06-07 16:23:40 -07:00
Tonis Tiigi
aeea615e85
dockerfile: add run mount parsing
...
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2018-06-07 14:55:13 -07:00