--opt build-arg:FOO failed the whole build with "invalid value
build-arg:FOO" instead of taking FOO from the client environment, so
callers had to spell out --opt build-arg:FOO=$FOO. "docker buildx build
--build-arg FOO" reads the environment, and buildctl already propagates
SOURCE_DATE_EPOCH from the environment into a build arg in loadOptEnv,
so the valueless form was the odd one out.
Resolve it in ParseOpt rather than in attrMap: attrMap is shared with
--local, where a value is still required. A variable that is not present
in the environment is left out of the frontend attributes entirely
rather than sent as an empty string, so a default in the Dockerfile
still applies.
Signed-off-by: Ravi Arnan <raviarnankeren@gmail.com>
Apply proxy network as an explicit LLB mutation before digest recompute,
while keeping runtime load options such as platform normalization applied
when creating vertices.
This preserves distinct cache keys for proxy-network builds without
breaking gateway warning and source-map lookups that use the original LLB
digests from the frontend.
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
`tldir` flag handling now properly handles the old logic and the new
logic for cert-manager.io without failing.
Improved error message when files are missing.
Co-authored-by: Gleb Nebolyubov <gleb.nebo@gmail.com>
Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
This adds an additional display output for the progress indicator to
support a json output. It refators the progressui package a bit to add a
new method that takes in a `SolveStatusDisplay`. This
`SolveStatusDisplay` can be created by the user using `NewDisplay` with
the various modes as input parameters.
The json output will print the raw events as JSON blobs. It will not
throttle the messages or limit the display. It is meant as a pure raw
marshaling of the underlying event stream.
Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
Added `--wait` to buildctl's global options. See below for behavior.
Implemented a `Wait` client method that blocks until a successful
request has been made to the remote buildkit. This behavior is identical
as in buildx, and only makes additional ListWorker calls *if the user
has requested them*.
The timeout as requested using the `--timeout` option is additionally
applied here.
Co-authored-by: Justin Chadwell <me@jedevc.com>
Signed-off-by: Justin Chadwell <me@jedevc.com>