MCPcopy Index your code
hub / github.com/devcontainers/cli / findUserStatement

Function findUserStatement

src/spec-node/dockerfileUtils.ts:84–101  ·  view source on GitHub ↗
(dockerfile: Dockerfile, buildArgs: Record<string, string>, baseImageEnv: Record<string, string>, globalBuildxPlatformArgs: Record<string, string> = {}, target: string | undefined)

Source from the content-addressed store, hash-verified

82}
83
84export function findUserStatement(dockerfile: Dockerfile, buildArgs: Record<string, string>, baseImageEnv: Record<string, string>, globalBuildxPlatformArgs: Record<string, string> = {}, target: string | undefined) {
85 let stage: Stage | undefined = target ? dockerfile.stagesByLabel[target] : dockerfile.stages[dockerfile.stages.length - 1];
86 const seen = new Set<Stage>();
87 while (stage) {
88 if (seen.has(stage)) {
89 return undefined;
90 }
91 seen.add(stage);
92
93 const i = findLastIndex(stage.instructions, i => i.instruction === 'USER');
94 if (i !== -1) {
95 return replaceVariables(dockerfile, buildArgs, baseImageEnv, globalBuildxPlatformArgs, stage.instructions[i].name, stage, i) || undefined;
96 }
97 const image = replaceVariables(dockerfile, buildArgs, baseImageEnv, globalBuildxPlatformArgs, stage.from.image, dockerfile.preamble, dockerfile.preamble.instructions.length);
98 stage = dockerfile.stagesByLabel[image];
99 }
100 return undefined;
101}
102
103export function findBaseImage(dockerfile: Dockerfile, buildArgs: Record<string, string>, target: string | undefined, globalBuildxPlatformArgs: Record<string, string> = {}) {
104 let stage: Stage | undefined = target ? dockerfile.stagesByLabel[target] : dockerfile.stages[dockerfile.stages.length - 1];

Calls 2

findLastIndexFunction · 0.85
replaceVariablesFunction · 0.85

Tested by

no test coverage detected