buildx: Build cannot export to registry on localhost
While setting up a local demo, I found that buildx is unable to access a registry server running on localhost. I can see that my registry server is listening on port 5000 with a curl command. This is with the docker-container driver, so I suspect that container is not using the host namespace and therefore cannot see any services running on localhost.
$ docker buildx build -f Dockerfile.buildx --target debug --platform linux/amd64,linux/arm64 -t localhost:5000/bmitch-public/golang-hello:buildx1 --output type=registry .
[+] Building 3.1s (24/24) FINISHED
=> [internal] load build definition from Dockerfile.buildx 0.4s
=> => transferring dockerfile: 39B 0.0s
=> [internal] load .dockerignore 0.5s
=> => transferring context: 34B 0.0s
=> [linux/amd64 internal] load metadata for docker.io/library/debian:latest 0.7s
=> [linux/amd64 internal] load metadata for docker.io/tonistiigi/xx:golang 0.7s
=> [linux/amd64 internal] load metadata for docker.io/library/golang:1.12-alpine 0.8s
=> [internal] load build context 0.2s
=> => transferring context: 105B 0.0s
=> [linux/amd64 debug 1/2] FROM docker.io/library/debian@sha256:118cf8f3557e1ea766c02f36f05f6ac3e63628427ea8965fb861be904ec35a6 0.0s
=> => resolve docker.io/library/debian@sha256:118cf8f3557e1ea766c02f36f05f6ac3e63628427ea8965fb861be904ec35a6f 0.0s
=> [linux/amd64 xgo 1/1] FROM docker.io/tonistiigi/xx:golang@sha256:4703827f56e3964eda6ca07be85046d1dd533eb0ed464e549266c10a4cd 0.0s
=> => resolve docker.io/tonistiigi/xx:golang@sha256:4703827f56e3964eda6ca07be85046d1dd533eb0ed464e549266c10a4cd8a29f 0.0s
=> [linux/amd64 dev 1/6] FROM docker.io/library/golang:1.12-alpine@sha256:cee6f4b901543e8e3f20da3a4f7caac6ea643fd5a46201c3c2387 0.0s
=> => resolve docker.io/library/golang:1.12-alpine@sha256:cee6f4b901543e8e3f20da3a4f7caac6ea643fd5a46201c3c2387183a332d989 0.0s
=> CACHED [linux/amd64 dev 2/6] COPY --from=xgo / / 0.0s
=> CACHED [linux/amd64 dev 3/6] RUN apk add --no-cache git ca-certificates 0.0s
=> CACHED [linux/amd64 dev 4/6] RUN adduser -D appuser 0.0s
=> CACHED [linux/amd64 dev 5/6] WORKDIR /src 0.0s
=> CACHED [linux/amd64 dev 6/6] COPY . /src/ 0.0s
=> CACHED [linux/amd64 build 1/1] RUN CGO_ENABLED=0 go build -ldflags '-w -extldflags -static' -o app . 0.0s
=> CACHED [linux/amd64 debug 2/2] COPY --from=build /src/app /app 0.0s
=> CACHED [linux/amd64 dev 2/6] COPY --from=xgo / / 0.0s
=> CACHED [linux/amd64 dev 3/6] RUN apk add --no-cache git ca-certificates 0.0s
=> CACHED [linux/amd64 dev 4/6] RUN adduser -D appuser 0.0s
=> CACHED [linux/amd64 dev 5/6] WORKDIR /src 0.0s
=> CACHED [linux/amd64 dev 6/6] COPY . /src/ 0.0s
=> CACHED [linux/amd64 build 1/1] RUN CGO_ENABLED=0 go build -ldflags '-w -extldflags -static' -o app . 0.0s
=> CACHED [linux/amd64 debug 2/2] COPY --from=build /src/app /app 0.0s
=> ERROR exporting to image 1.4s
=> => exporting layers 0.1s
=> => exporting manifest sha256:fb7fb1aacd96dcd6c9a6d2654fb2a9cf7692c3ebfd4d15bd1dd397d38713a589 0.2s
=> => exporting config sha256:8c443cd193baf5e58914a1ad50d8311e25f7d9ac86772a6ab2df99ed7f4ef6f3 0.2s
=> => exporting manifest sha256:d63ec5c6531662c1185b1cc90755573a1bbc1b4754998181847598433fe30e5e 0.2s
=> => exporting config sha256:3838e43619611f78eedbc6604fedc3ab134f2beb4225d45d10bb37698603189e 0.2s
=> => exporting manifest list sha256:4c8694f90dda751d32ccbd9e48bdeba1042467f07bd0193378e254141e7464ec 0.2s
=> => pushing layers 0.0s
------
> exporting to image:
------
failed to solve: rpc error: code = Unknown desc = failed to do request: Head http://localhost:5000/v2/bmitch-public/golang-hello/blobs/sha256:8c443cd193baf5e58914a1ad50d8311e25f7d9ac86772a6ab2df99ed7f4ef6f3: dial tcp 127.0.0.1:5000: connect: connection refused
$ curl -sSLk https://localhost:5000/v2/
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
new * docker-container
new0 unix:///var/run/docker.sock running linux/amd64
default docker
default default running linux/amd64
Note this is a low priority issue for me, I’d much rather see #80 solved.
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Reactions: 4
- Comments: 18 (5 by maintainers)
Use
create --driver-opt network=host@dt-rush Use
--confighttps://github.com/docker/buildx#--config-file withhttp: trueset for the insecure registry.