docker / buildx

Docker CLI plugin for extended build capabilities with BuildKit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unable to use library/* as build context and override it from bake files

luciangabor opened this issue · comments

Contributing guidelines

I've found a bug and checked that ...

  • ... the documentation does not mention anything about my problem
  • ... there are no open or closed issues that are related to my problem

Description

FROM library/golang (for example) always resolves to docker.io/library/golang:latest even if I set library/golang to something like docker-library://library/golang:1.22. The same applies to --from=library/golang

Expected behaviour

I should be able to override library/* with anything, especially since docker buildx build --context library/golang=... works as expected

Actual behaviour

As stated in the description

Buildx version

github.com/docker/buildx v0.13.0 0de5f1c

Docker info

No response

Builders list

NAME/NODE     DRIVER/ENDPOINT   STATUS    BUILDKIT   PLATFORMS
default*      docker                                 
 \_ default    \_ default       running   v0.12.5    linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386

Configuration

# Dockerfile
FROM scratch
COPY --from=library/golang /usr/local/go /go/library
COPY --from=bitnami/golang /opt/bitnami/go /go/bintami
# docker-bake.hcl
target default {
  contexts = {
    "library/golang" = "docker-image://library/golang:1.22"
    "bitnami/golang" = "docker-image://bitnami/golang:1.22"
  }
}
docker buildx bake --progress plain -f docker-bake.hcl

Build logs

#0 building with "default" instance using docker driver

#1 [internal] load local bake definitions
#1 reading docker-bake.hcl 158B / 158B done
#1 DONE 0.0s

#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile: 158B done
#2 DONE 0.0s

#3 [internal] load metadata for docker.io/library/golang:latest
#3 ...

#4 [context bitnami/golang] load metadata for bitnami/golang:1.22
#4 DONE 0.4s

#3 [internal] load metadata for docker.io/library/golang:latest
#3 DONE 0.4s

#5 [internal] load .dockerignore
#5 transferring context: 2B done
#5 DONE 0.0s

#6 FROM docker.io/library/golang:latest@sha256:34ce21a9696a017249614876638ea37ceca13cdd88f582caad06f87a8aa45bf3
#6 DONE 0.0s

#7 [context bitnami/golang] bitnami/golang:1.22
#7 resolve docker.io/bitnami/golang:1.22
#7 resolve docker.io/bitnami/golang:1.22 0.3s done
#7 DONE 0.3s

#8 [stage-0 1/2] COPY --from=library/golang /usr/local/go /go/library
#8 CACHED

#9 [stage-0 2/2] COPY --from=bitnami/golang /opt/bitnami/go /go/bintami
#9 CACHED

#10 exporting to image
#10 exporting layers done
#10 writing image sha256:1bd6490245f856f9de92659e55cce8186534a241d96847ba95fa010d7c5648b7 done
#10 DONE 0.0s

Additional info

$ docker buildx build --progress plain --build-context library/golang=docker-image://library/golang:1.22 --build-context bitnami/golang=docker-image://bitnami/golang:1.22 .
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 158B done
#1 DONE 0.0s

#2 [context golang] load metadata for library/golang:1.22
#2 ...

#3 [context bitnami/golang] load metadata for bitnami/golang:1.22
#3 DONE 0.8s

#2 [context golang] load metadata for library/golang:1.22
#2 DONE 0.8s

#4 [internal] load .dockerignore
#4 transferring context: 2B done
#4 DONE 0.0s

#5 [context bitnami/golang] bitnami/golang:1.22
#5 resolve docker.io/bitnami/golang:1.22
#5 resolve docker.io/bitnami/golang:1.22 0.3s done
#5 DONE 0.3s

#6 [context golang] library/golang:1.22
#6 resolve docker.io/library/golang:1.22 0.4s done
#6 DONE 0.4s

#7 [stage-0 1/2] COPY --from=library/golang /usr/local/go /go/library
#7 CACHED

#8 [stage-0 2/2] COPY --from=bitnami/golang /opt/bitnami/go /go/bintami
#8 CACHED

#9 exporting to image
#9 exporting layers done
#9 writing image sha256:1bd6490245f856f9de92659e55cce8186534a241d96847ba95fa010d7c5648b7 done
#9 DONE 0.0s