From de26f3b88c302ca1c4d85256af5e96c7e73f02e8 Mon Sep 17 00:00:00 2001 From: ross-p-smith Date: Thu, 29 Jan 2026 22:22:25 +0000 Subject: [PATCH] Added BUILDKIT_INLINE_CACHE for containerFeature path --- src/spec-node/containerFeatures.ts | 5 ++++- src/spec-node/singleContainer.ts | 6 ++++-- src/spec-node/utils.ts | 7 +++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/spec-node/containerFeatures.ts b/src/spec-node/containerFeatures.ts index cc957c592..e05822d1b 100644 --- a/src/spec-node/containerFeatures.ts +++ b/src/spec-node/containerFeatures.ts @@ -11,7 +11,7 @@ import { LogLevel, makeLog } from '../spec-utils/log'; import { FeaturesConfig, getContainerFeaturesBaseDockerFile, getFeatureInstallWrapperScript, getFeatureLayers, getFeatureMainValue, getFeatureValueObject, generateFeaturesConfig, Feature, generateContainerEnvs } from '../spec-configuration/containerFeaturesConfiguration'; import { readLocalFile } from '../spec-utils/pfs'; import { includeAllConfiguredFeatures } from '../spec-utils/product'; -import { createFeaturesTempFolder, DockerResolverParameters, getCacheFolder, getFolderImageName, getEmptyContextFolder, SubstitutedConfig } from './utils'; +import { createFeaturesTempFolder, DockerResolverParameters, getCacheFolder, getFolderImageName, getEmptyContextFolder, SubstitutedConfig, isBuildxCacheToInline } from './utils'; import { isEarlierVersion, parseVersion, runCommandNoPty } from '../spec-common/commonUtils'; import { getDevcontainerMetadata, getDevcontainerMetadataLabel, getImageBuildInfoFromImage, ImageBuildInfo, ImageMetadataEntry, imageMetadataLabel, MergedDevContainerConfig } from './imageMetadata'; import { supportsBuildContexts } from './dockerfileUtils'; @@ -85,6 +85,9 @@ export async function extendImage(params: DockerResolverParameters, config: Subs if (params.buildxCacheTo) { args.push('--cache-to', params.buildxCacheTo); } + if (!isBuildxCacheToInline(params.buildxCacheTo)) { + args.push('--build-arg', 'BUILDKIT_INLINE_CACHE=1'); + } if (!params.buildNoCache) { params.additionalCacheFroms.forEach(cacheFrom => args.push('--cache-from', cacheFrom)); } diff --git a/src/spec-node/singleContainer.ts b/src/spec-node/singleContainer.ts index 2f4a8a3fc..dc38ef1fc 100644 --- a/src/spec-node/singleContainer.ts +++ b/src/spec-node/singleContainer.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ -import { createContainerProperties, startEventSeen, ResolverResult, getTunnelInformation, getDockerfilePath, getDockerContextPath, DockerResolverParameters, isDockerFileConfig, uriToWSLFsPath, WorkspaceConfiguration, getFolderImageName, inspectDockerImage, logUMask, SubstitutedConfig, checkDockerSupportForGPU, isBuildKitImagePolicyError } from './utils'; +import { createContainerProperties, startEventSeen, ResolverResult, getTunnelInformation, getDockerfilePath, getDockerContextPath, DockerResolverParameters, isDockerFileConfig, uriToWSLFsPath, WorkspaceConfiguration, getFolderImageName, inspectDockerImage, logUMask, SubstitutedConfig, checkDockerSupportForGPU, isBuildKitImagePolicyError, isBuildxCacheToInline } from './utils'; import { ContainerProperties, setupInContainer, ResolverProgress, ResolverParameters } from '../spec-common/injectHeadless'; import { ContainerError, toErrorText } from '../spec-common/errors'; import { ContainerDetails, listContainers, DockerCLIParameters, inspectContainers, dockerCLI, dockerPtyCLI, toPtyExecParameters, ImageDetails, toExecParameters, removeContainer } from '../spec-shutdown/dockerUtils'; @@ -209,7 +209,9 @@ async function buildAndExtendImage(buildParams: DockerResolverParameters, config if (buildParams.buildxCacheTo) { args.push('--cache-to', buildParams.buildxCacheTo); } - args.push('--build-arg', 'BUILDKIT_INLINE_CACHE=1'); + if (!isBuildxCacheToInline(buildParams.buildxCacheTo)) { + args.push('--build-arg', 'BUILDKIT_INLINE_CACHE=1'); + } } else { args.push('build'); } diff --git a/src/spec-node/utils.ts b/src/spec-node/utils.ts index 1fb1ec1cc..5c0fb374c 100644 --- a/src/spec-node/utils.ts +++ b/src/spec-node/utils.ts @@ -93,6 +93,13 @@ export async function logUMask(params: DockerResolverParameters): Promise