@@ -224,7 +224,7 @@ export function getContainerFeaturesBaseDockerFile(useBuildKitBuildContexts = fa
224224
225225#{nonBuildKitFeatureContentFallback}
226226${ ( ( ) => {
227- return useBuildKitBuildContexts ? '' : `
227+ return useBuildKitBuildContexts ? `` : `
228228FROM $_DEV_CONTAINERS_BASE_IMAGE AS dev_containers_feature_content_normalize
229229USER root
230230COPY --from=dev_containers_feature_content_source {contentSourceRootPath} /tmp/build-features/
@@ -237,7 +237,10 @@ FROM $_DEV_CONTAINERS_BASE_IMAGE AS dev_containers_target_stage
237237USER 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+ ` : `
241244COPY --from=dev_containers_feature_content_normalize /tmp/build-features /tmp/build-features
242245` ;
243246} ) ( ) }
@@ -319,7 +322,6 @@ function escapeQuotesForShell(input: string) {
319322
320323export function getFeatureLayers ( featuresConfig : FeaturesConfig , containerUser : string , remoteUser : string , useBuildKitBuildContexts = false , contentSourceRootPath = '/tmp/build-features/' ) {
321324 let result = `RUN \\
322- mkdir -p /tmp/build-features && \\
323325echo "_CONTAINER_USER_HOME=$(getent passwd ${ containerUser } | cut -d: -f6)" >> /tmp/build-features/devcontainer-features.builtin.env && \\
324326echo "_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
356357RUN 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 += `
363365RUN --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 } ) ;
0 commit comments