builder/windows: Don't set ArgsEscaped for RUN cache probe

Previously this was done indirectly - the `compare` function didn't
check the `ArgsEscaped`.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
This commit is contained in:
Paweł Gronowski 2024-01-11 14:04:02 +01:00
parent 877ebbe038
commit 96d461d27e
No known key found for this signature in database
GPG key ID: B85EFCFE26DEF92A

View file

@ -348,9 +348,16 @@ func dispatchRun(ctx context.Context, d dispatchRequest, c *instructions.RunComm
saveCmd = prependEnvOnCmd(d.state.buildArgs, buildArgs, cmdFromArgs) saveCmd = prependEnvOnCmd(d.state.buildArgs, buildArgs, cmdFromArgs)
} }
cacheArgsEscaped := argsEscaped
// ArgsEscaped is not persisted in the committed image on Windows.
// Use the original from previous build steps for cache probing.
if d.state.operatingSystem == "windows" {
cacheArgsEscaped = stateRunConfig.ArgsEscaped
}
runConfigForCacheProbe := copyRunConfig(stateRunConfig, runConfigForCacheProbe := copyRunConfig(stateRunConfig,
withCmd(saveCmd), withCmd(saveCmd),
withArgsEscaped(argsEscaped), withArgsEscaped(cacheArgsEscaped),
withEntrypointOverride(saveCmd, nil)) withEntrypointOverride(saveCmd, nil))
if hit, err := d.builder.probeCache(d.state, runConfigForCacheProbe); err != nil || hit { if hit, err := d.builder.probeCache(d.state, runConfigForCacheProbe); err != nil || hit {
return err return err