@@ -28,7 +28,6 @@ struct AWSLambdaBuilder: CommandPlugin {
2828 let packageID : String = context. package . id
2929 let packageDisplayName = context. package . displayName
3030 let packageDirectory = context. package . directoryURL
31- let dockerToolPath = try context. tool ( named: " docker " ) . url
3231 let zipToolPath = try context. tool ( named: " zip " ) . url
3332
3433 // extract arguments that require PluginContext to fully resolve
@@ -39,6 +38,18 @@ struct AWSLambdaBuilder: CommandPlugin {
3938 let productsArgument = argumentExtractor. extractOption ( named: " products " )
4039 let configurationArgument = argumentExtractor. extractOption ( named: " configuration " )
4140
41+ // Resolve the container CLI that matches the requested cross-compilation method.
42+ // The plugin sandbox can only run tools it resolves up front, so we must pick the right
43+ // binary here — `container` for `--cross-compile container`, `docker` otherwise. Extracting
44+ // these options only peeks them for the plugin; the original `arguments` (which the helper
45+ // re-parses) is still forwarded unchanged below.
46+ // `--container-cli` is a deprecated alias for `--cross-compile`.
47+ let crossCompileArgument = argumentExtractor. extractOption ( named: " cross-compile " )
48+ let containerCliArgument = argumentExtractor. extractOption ( named: " container-cli " )
49+ let crossCompileMethod = ( crossCompileArgument. first ?? containerCliArgument. first) ? . lowercased ( )
50+ let containerCLIToolName = crossCompileMethod == " container " ? " container " : " docker "
51+ let containerToolPath = try context. tool ( named: containerCLIToolName) . url
52+
4253 if let outputPath = outputPathArgument. first {
4354 #if os(Linux)
4455 var isDirectory : Bool = false
@@ -87,7 +98,7 @@ struct AWSLambdaBuilder: CommandPlugin {
8798 " --package-id " , packageID,
8899 " --package-display-name " , packageDisplayName,
89100 " --package-directory " , packageDirectory. path ( ) ,
90- " --docker-tool-path " , dockerToolPath . path,
101+ " --docker-tool-path " , containerToolPath . path,
91102 " --zip-tool-path " , zipToolPath. path,
92103 ] + arguments
93104
0 commit comments