起きたこと
docker-compose up
を実行したところ、以下エラーが発生してdocker-composeを使用できなくなった
$ docker-compose up -d
ERROR: The Compose file is invalid because:
Service app has neither an image nor a build context specified. At least one must be provided.
ちなみに前提として
- この事象が起きる前日までは同じコマンドで問題なく実行できてた。
- docker-compose.yml及びDockerfileに変更入れていない。
となっています。
環境
- Macbook Pro 2018 2.3 GHz クアッドコアIntel Core i5
- mac OS Monterey 12.2.1
- Docker Desktop for Mac 4.6.0
エラーとなったdocker-compose.yml
version: "3"
services:
app:
build:
dockerfile: ./Dockerfile
container_name: app-container
tty: true
volumes:
- .:/go/src/app
ports:
- "3000:3000"
depends_on:
- db
environment:
- "DB_USER=root"
- "DB_PASSWORD=password"
- "DB_NAME=todo_db"
- "DB_HOSTNAME=db"
- "DB_PORT=3306"
db:
image: mysql:5.7
container_name: db-container
ports:
- "3306:3306"
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- "./mysql/db-data/:/var/lib/mysql"
- "./mysql/my.cnf:/etc/mysql/conf.d/my.cnf"
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: todo_db
解決までに試したこと
-
Service app has neither an image nor a build context specified
と出ているので、appサービスにimageやbuildを追加 - ファイルのインデントを揃える
- 全角スペースが紛れ込んでいないか調査
解決手段
docker-compose
ではなく docker compose
に切り替えたら解決しました。
docker compose
はどうやらDocker Desktop3.4.0から入っている Compose V2コマンドのようです。
参考:https://docs.docker.com/compose/cli-command/
特に何も考えずにDocker for Desktopのアップデート行っていたので、何か入ったのかも
なぜこのような事象が起きているかは今のところ分かりません。
分かり次第追記すると思います。