LCOW: Ensure platform is populated on COPY/ADD
@@ -82,13 +82,28 @@ type copier struct {
}
func copierFromDispatchRequest(req dispatchRequest, download sourceDownloader, imageSource *imageMount) copier {
+ platform := req.builder.platform
+ if platform == nil {
+ // May be nil if not explicitly set in API/dockerfile
+ platform = &specs.Platform{}
+ }
+ if platform.OS == "" {
+ // Default to the dispatch requests operating system if not explicit in API/dockerfile
+ platform.OS = req.state.operatingSystem
+ }
+ if platform.OS == "" {
+ // This is a failsafe just in case. Shouldn't be hit.
+ platform.OS = runtime.GOOS
+ }
+
return copier{
source: req.source,
pathCache: req.builder.pathCache,
download: download,
imageSource: imageSource,
- platform: req.builder.platform,
+ platform: platform,
}
+
}
func (o *copier) createCopyInstruction(args []string, cmdName string) (copyInstruction, error) {
