🦔
docker-compose.ymlをターゲットにdocker buildx buildした時にlocalのベースイメージが使えない
概要
docker buildx build -f docker-compose.yml でビルドしたいが、localのdocker desktopに保存されたイメージを取りに行ってくれない。ローカルでレジストリサーバーを立てるしか無いのかも。
2024/03/18 追記
dockerのdriverがdocker-containerになっていたからだった。
dockerに変更したらビルドできた。
エラーコード
--------------------
1 | >>> FROM my-python:latest
--------------------
ERROR: failed to solve: my-python:latest: failed to resolve source metadata for docker.io/library/my-python:latest: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
docker.io/library/ を見に行ってしまっていて、docker desktopに保存されたイメージを使っていないことがわかる。
docker-compose.yml
version: "3.9"
services:
my-app:
build:
context: .
dockerfile: Dockerfile.my-app
ビルドコマンド
docker buildx build -t my-python:latest --file ./Dockerfile.my-python . --load
docker buildx bake -f ./docker-compose.yml
--loadをつけることでdocker desktopにイメージが登録される。
docker buildx build --help
によると--output type=docker と同じ。
Dockerfile.my-python
FROM python:alpine3.19
Dockerfile.my-app
FROM my-python:latest
調べた情報
docker-composeのせいではないよ!って言っているissueでclose済み
同じ症状の話でまだopen
Discussion