Skip to content

Add support for build secrets#1300

Open
percontation wants to merge 3 commits intoapple:mainfrom
percontation:secrets
Open

Add support for build secrets#1300
percontation wants to merge 3 commits intoapple:mainfrom
percontation:secrets

Conversation

@percontation
Copy link

@percontation percontation commented Mar 7, 2026

docker-compatible --secret id=key,... arg for container build, that works with Dockerfiles with RUN --mount=type=secret

Requires apple/container-builder-shim#69

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update

Motivation and Context

Adds support for Dockerfiles that use build secrets (e.g. RUN --mount=type=secret ...)

Testing

  • Tested locally
  • Added/updated tests
  • Added/updated docs

docker-compatible container build --secret id=aws,...
for RUN --mount=type=secret
@percontation
Copy link
Author

percontation commented Mar 7, 2026

I haven't done much Swift before, so watch out for any stupid mistakes I may have made.

One design caveat: I passed secrets by copying the build-args code, because they're functionally the same. But, systems are supposed to take care that the secret values aren't logged or stored anywhere, so HTTP headers are a much riskier way to send them than transporting them separately in a new BuildTransfer. I nevertheless used the headers to send the secrets because 1. it seemed easier 2. I didn't notice anything that would log or record these headers 3. it looked like the headers and BuildTransfers alike are just data sent through gRPC, so, not much practical difference right now.

}

var secretsData: [String: Data] = [:]
for secret in self.secret {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we move this part under validate function? #1273 as an example.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved it. Let me know if I did what you were expecting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants