Skip to content

Commit 89edaef

Browse files
committed
Merge branch 'fea/mount-feature-layers' into fea/pkg-workflows+mount-feature-layers
2 parents 9b1480a + cedc963 commit 89edaef

2 files changed

Lines changed: 10 additions & 11 deletions

File tree

src/spec-configuration/containerFeaturesConfiguration.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ export function getContainerFeaturesBaseDockerFile(useBuildKitBuildContexts = fa
224224
225225
#{nonBuildKitFeatureContentFallback}
226226
${(() => {
227-
return useBuildKitBuildContexts ? '' : `
227+
return useBuildKitBuildContexts ? `` : `
228228
FROM $_DEV_CONTAINERS_BASE_IMAGE AS dev_containers_feature_content_normalize
229229
USER root
230230
COPY --from=dev_containers_feature_content_source {contentSourceRootPath} /tmp/build-features/
@@ -237,7 +237,10 @@ FROM $_DEV_CONTAINERS_BASE_IMAGE AS dev_containers_target_stage
237237
USER root
238238
239239
${(() => {
240-
return useBuildKitBuildContexts ? '' : `
240+
return useBuildKitBuildContexts ? `
241+
COPY --from=dev_containers_feature_content_source {contentSourceRootPath}/devcontainer-features.builtin.env /tmp/build-features/
242+
RUN chmod -R 0700 /tmp/build-features
243+
` : `
241244
COPY --from=dev_containers_feature_content_normalize /tmp/build-features /tmp/build-features
242245
`;
243246
})()}
@@ -319,7 +322,6 @@ function escapeQuotesForShell(input: string) {
319322

320323
export function getFeatureLayers(featuresConfig: FeaturesConfig, containerUser: string, remoteUser: string, useBuildKitBuildContexts = false, contentSourceRootPath = '/tmp/build-features/') {
321324
let result = `RUN \\
322-
mkdir -p /tmp/build-features && \\
323325
echo "_CONTAINER_USER_HOME=$(getent passwd ${containerUser} | cut -d: -f6)" >> /tmp/build-features/devcontainer-features.builtin.env && \\
324326
echo "_REMOTE_USER_HOME=$(getent passwd ${remoteUser} | cut -d: -f6)" >> /tmp/build-features/devcontainer-features.builtin.env
325327
@@ -329,16 +331,15 @@ echo "_REMOTE_USER_HOME=$(getent passwd ${remoteUser} | cut -d: -f6)" >> /tmp/bu
329331
const folders = (featuresConfig.featureSets || []).filter(y => y.internalVersion !== '2').map(x => x.features[0].consecutiveId);
330332
folders.forEach(folder => {
331333
if (!useBuildKitBuildContexts) {
332-
result += `RUN cd /tmp/build-features/${folder} \\
334+
result += `RUN cd /tmp/build-features/${folder} \\
333335
&& chmod +x ./install.sh \\
334336
&& ./install.sh
335337
336338
`;
337339
} else {
338340
const source = path.posix.join(contentSourceRootPath, folder!);
339341
result += `RUN --mount=type=bind,from=dev_containers_feature_content_source,source=${source},target=/tmp/build-features-src/${folder} \\
340-
mkdir -p /tmp/build-feat \\
341-
&& cp -ar /tmp/build-features-src/${folder} /tmp/build-features/ \\
342+
cp -ar /tmp/build-features-src/${folder} /tmp/build-features/ \\
342343
&& cd /tmp/build-features/${folder} \\
343344
&& chmod +x ./install.sh \\
344345
&& ./install.sh \\
@@ -356,18 +357,18 @@ echo "_REMOTE_USER_HOME=$(getent passwd ${remoteUser} | cut -d: -f6)" >> /tmp/bu
356357
RUN cd /tmp/build-features/${feature.consecutiveId} \\
357358
&& chmod +x ./devcontainer-features-install.sh \\
358359
&& ./devcontainer-features-install.sh
360+
359361
`;
360362
} else {
361363
const source = path.posix.join(contentSourceRootPath, feature.consecutiveId!);
362364
result += `
363365
RUN --mount=type=bind,from=dev_containers_feature_content_source,source=${source},target=/tmp/build-features-src/${feature.consecutiveId} \\
364-
mkdir -p /tmp/build-features \\
365-
&& cp -ar /tmp/build-features-src/${feature.consecutiveId} /tmp/build-features/ \\
366-
&& chmod -R 0700 /tmp/build-features \\
366+
cp -ar /tmp/build-features-src/${feature.consecutiveId} /tmp/build-features/ \\
367367
&& cd /tmp/build-features/${feature.consecutiveId} \\
368368
&& chmod +x ./devcontainer-features-install.sh \\
369369
&& ./devcontainer-features-install.sh \\
370370
&& rm -rf /tmp/build-features/${feature.consecutiveId}
371+
371372
`;
372373
}
373374
});

src/test/container-features/generateFeaturesConfig.test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ describe('validate generateFeaturesConfig()', function () {
7272
// getFeatureLayers
7373
const actualLayers = getFeatureLayers(featuresConfig, 'testContainerUser', 'testRemoteUser');
7474
const expectedLayers = `RUN \\
75-
mkdir -p /tmp/build-features && \\
7675
echo "_CONTAINER_USER_HOME=$(getent passwd testContainerUser | cut -d: -f6)" >> /tmp/build-features/devcontainer-features.builtin.env && \\
7776
echo "_REMOTE_USER_HOME=$(getent passwd testRemoteUser | cut -d: -f6)" >> /tmp/build-features/devcontainer-features.builtin.env
7877
@@ -131,7 +130,6 @@ RUN cd /tmp/build-features/second_2 \\
131130
// getFeatureLayers
132131
const actualLayers = getFeatureLayers(featuresConfig, 'testContainerUser', 'testRemoteUser');
133132
const expectedLayers = `RUN \\
134-
mkdir -p /tmp/build-features && \\
135133
echo "_CONTAINER_USER_HOME=$(getent passwd testContainerUser | cut -d: -f6)" >> /tmp/build-features/devcontainer-features.builtin.env && \\
136134
echo "_REMOTE_USER_HOME=$(getent passwd testRemoteUser | cut -d: -f6)" >> /tmp/build-features/devcontainer-features.builtin.env
137135

0 commit comments

Comments
 (0)