Docker compose build 出現 failed to solve with frontend dockerfile.v0 錯誤
執行 docker compose build 的時候,有時會看到類似這樣的錯誤訊息
$ docker compose build
[+] Building 0.1s (2/2) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 32B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend
dockerfile.v0: failed to create LLB definition: target stage my-tool could not be found
這有幾個可能性。如果 docker-compose.yml
中有 build
設定,而且也有設定 target
,可先檢查指定的 target 是否正確(參照:multi-stage builds),或試著不使用 target
。
version: '3.4'
services:
my-tool:
build:
context: .
target: my-tool # 檢查是否有名為 my-tool 的 stage
container_name: mytool
volumes:
- .:/app
再來也可能踩到 docker compose 的 bug,如果 build
設定前面有其他欄位,嘗試把 build
拉到該 service 的第一個位置。
version: '3.4'
services:
my-tool:
container_name: mytool
build: .
volumes:
- .:/app
version: '3.4'
services:
my-tool:
build: .
container_name: mytool
volumes:
- .:/app
也可能是踩到 BuildKit 的 bug,告訴 docker compose 不使用 buildkit 有機會解決。
$ DOCKER_BUILDKIT=0 docker compose build