Skip to content

[pull] master from moby:master #179

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4,907 commits into
base: master
Choose a base branch
from
Open

[pull] master from moby:master #179

wants to merge 4,907 commits into from

Conversation

pull[bot]
Copy link

@pull pull bot commented Apr 27, 2021

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

tonistiigi and others added 28 commits February 13, 2025 15:22
dockerfile: error out if device feature not used in labs
Signed-off-by: Austin Vazquez <[email protected]>
Devices can be marked as "automatically allowed" by TOML config
or by the CDI spec of specific file via annotation.

Device that is is not "automatically allowed" needs to be allowed
by the build request by passing entitlement. For example a Dockerfile
may not use a device without use invoking the build permitting it.

--allow device grants access to any device.
--allow device=kind|name grants access to specific device.
--allow device=kind|name,alias=kind|name allows mapping kind to
a specific device or one device to another. Alias is the name requested
by the build and device is the actual device that is being enabled.

Signed-off-by: Tonis Tiigi <[email protected]>
mark Windows 2025 tests as non-blockin
Signed-off-by: CrazyMax <[email protected]>
Signed-off-by: CrazyMax <[email protected]>
Bumps [nick-fields/retry](https://github.com/nick-fields/retry) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/nick-fields/retry/releases)
- [Changelog](https://github.com/nick-fields/retry/blob/master/.releaserc.js)
- [Commits](nick-fields/retry@7152eba...c97818c)

---
updated-dependencies:
- dependency-name: nick-fields/retry
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
cache(gha): don't require url attr if url_v2 is set
add autoallow and entitlements support to CDI devices
…lds/retry-3.0.1

build(deps): bump nick-fields/retry from 3.0.0 to 3.0.1
buildctl: set fallback url for gha cache
I came across a number of calls to `platforms.DefaultSpec()`
that were not necessary. That prompted me to take a look
various other similar places.

At least on Windows, the call is a has some cost till
doing a sycall `RtlGetNtVersionNumbers()`.

Signed-off-by: Anthony Nandaa <[email protected]>
cache(gha): set user-agent for github cache service requests
cache(gha): fix missing user-agent for importer
refactor: avoid unnecessary calls to platforms.DefaultSpec()
tests: frontend/dockerfile: update integration tests for windows/wcow (revisited)
Currently, mounts are not supported for WCOW builds,
see #5678. This commit introduces support for
bind and cache mounts. The remaining two require
a little more work and consultation with the platform
teams for enlightment.

WIP Checklist:

- [x] Support for bind mounts
- [x] Support for cache mounts
- [x] add frontend/dockerfile integration tests
- [x] add client integration tests (not all, `llb.AddMount` not
  complete)

Fixes #5603

Signed-off-by: Anthony Nandaa <[email protected]>
The call to CheckSystemDriveAndRemoveDriveLetter() does not preserve
the trailing `/` or `\\`. This happens because `filepath.Clean()`
strips away any trailing slashes. For example `/sample/` will be
`\\sample` on Windows and `/sample` on Linux.
This function was mainly written for Windows scenarios, which
have System Drive Letters like C:/, etc.

This was causing cases like `COPY testfile /testdir/` to
be intepreted as `COPY testfile /testdir`, and if `testdir` is
not explictly created before the call, it ends up being treated
as a destination file other than a directory.

Fix this by checking that if we have a trailing `/` or `\\`, we
preserve it after the call to `filepath.Clean()`.

Also refactor `CheckSystemDriveAndRemoveDriveLetter` function to take
an extra keepSlash bool param, to be consistent with what is passed
to `NormalizePath`.

The rest of the calls to this function has left keepSlash = false
as the default behavior.

Fixes #5249

PS. Also fixed for cross-building from Linux scenario, taking care
for paths like `\\sample\\` that are not changed when run
through `filepath.Clean()`.

Signed-off-by: Anthony Nandaa <[email protected]>
Support authentication for HTTP sources.

 - llb: Define general `llb.AuthOption` interface composed of
   `HTTPOption` and `GitOption`.
 - llb: Refactor `llb.AuthHeaderSecret` to return an `llb.AuthOption` so
   it may be used with both `llb.Git` and `llb.HTTP`.
 - llb: Define `HTTPInfo.AuthHeaderSecret`.
 - llb: Define and flag new `source.http.auth` capability when
   `HTTPInfo.AuthHeaderSecret` is set.
 - solver: Define new `http.auth` source attribute.
 - source/http: If an `http.auth` attribute is specified, resolve a
   secret named by its value and set the "Authorization" request header.

Signed-off-by: Dan Duvall <[email protected]>
tonistiigi and others added 30 commits May 7, 2025 16:59
Signed-off-by: Tonis Tiigi <[email protected]>
The PATH is very critical during container runs on
Windows. Windows stores the PATH details in its
registry hive, while in unix, this is often
stored in the image's config. See further details
at #5445

Setting a default path like we do on Linux
(which is mostly not used since the PATH is
already set in the configs), works against
the expected build experience, especially when
it comes to installers and commands like `setx`.

Therefore, we skip setting the default PATH on
Windows, and leave it for the OS to load it
from its registry hive.

This also further supports backward compatibilitiy
with the current experience with docker classic
builder.

Users wishing to explicitly store this in the
configs can opt-in by using the ENV PATH= ..
in the Dockerfile, etc.

See also the same practices on Docker Engine
and Containerd:
- https://github.com/moby/moby/blob/da3b31fb2c4e83e77cf928e166982d03ba68a4e7/oci/defaults.go#L24-L33
- https://github.com/containerd/containerd/blob/041743e8afd2bb2189aa904f04bf87b9073892d3/pkg/oci/spec_opts_windows.go#L66-L69

closes #5445

Signed-off-by: Anthony Nandaa <[email protected]>
progressui: fix panic on very small terminal
cache: improve migration to image manifest cache
Previously, when no platforms were explicitly defined in the config,
serialization would emit an empty array instead of omitting the field.
When loading this cofig, this prevented the worker from falling back
to default platform detection during initialization. By using `omitempty`,
we ensure the field is excluded when empty, allowing defaults to be
correctly applied.

Fixes #5740.

Signed-off-by: Alberto Garcia Hierro <[email protected]>
windows: leave default PATH env to be set by the OS
Signed-off-by: Tonis Tiigi <[email protected]>
pusher: add response details to push errors
fix: omit empty list of platforms when serializing worker config
dockerfile: allow whitespace in heredocs
Support for building overlaybd images
lint: fix after merge conflict
cdi: fix device request by class annotation
dockerfile: update cni to 1.7.1
…image

vendor: github.com/containerd/accelerated-container-image v1.3.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.