in packages/cdk-assets/lib/private/docker.ts [104:139]
public async build(options: BuildOptions) {
const buildCommand = [
'build',
...flatten(
Object.entries(options.buildArgs || {}).map(([k, v]) => ['--build-arg', `${k}=${v}`]),
),
...flatten(
Object.entries(options.buildSecrets || {}).map(([k, v]) => ['--secret', `id=${k},${v}`]),
),
...(options.buildSsh ? ['--ssh', options.buildSsh] : []),
'--tag',
options.tag,
...(options.target ? ['--target', options.target] : []),
...(options.file ? ['--file', options.file] : []),
...(options.networkMode ? ['--network', options.networkMode] : []),
...(options.platform ? ['--platform', options.platform] : []),
...(options.outputs ? options.outputs.map((output) => [`--output=${output}`]) : []),
...(options.cacheFrom
? [
...options.cacheFrom
.map((cacheFrom) => ['--cache-from', this.cacheOptionToFlag(cacheFrom)])
.flat(),
]
: []),
...(options.cacheTo ? ['--cache-to', this.cacheOptionToFlag(options.cacheTo)] : []),
...(options.cacheDisabled ? ['--no-cache'] : []),
'.',
];
await this.execute(buildCommand, {
cwd: options.directory,
subprocessOutputDestination: this.subprocessOutputDestination,
env: {
BUILDX_NO_DEFAULT_ATTESTATIONS: '1', // Docker Build adds provenance attestations by default that confuse cdk-assets
},
});
}