エラー
dockerfileをbuildしたらエラーになりました
docker-compose up
$ docker-compose up -d --build
ERROR: The Compose file is invalid because: Service mysql-master has neither an image nor a build context specified. At least one must be provided.
Service mysql-masterにイメージもコンテキストも設定されてません。少なくとも一つは指定が必要です。
docker-compose.yaml
dockerfile-mysqlを指定してますが見えてないようです
version: "3"
services:
mysql-master: # マスターデータベース
image: mysql:5.7
restart: always
volumes:
- ./mysql/log/master:/var/log/mysql # データベースデータ(永続化)
- ./mysql/db/master:/var/lib/mysql # データベースログ
- ./mysql/master/conf.d/:/etc/mysql/conf.d # データベース設定ファイル
- ./mysql/master/initdb.d:/docker-entrypoint-initdb.d # 初期スクリプトファイル
tty: true
environment:
TZ: Asia/Tokyo
MYSQL_ROOT_PASSWORD: root_db_pass
MYSQL_DATABASE: wordpress_db
MYSQL_USER: wordpress_db_user
MYSQL_PASSWORD: wordpress_db_pass
build:
dockerfile: ./mysql/Dockerfile-mysql
原因はcontextが未指定
buildに「context: .」追加して解決しました。
version: "3"
services:
mysql-master: # マスターデータベース
image: mysql:5.7
restart: always
volumes:
- ./mysql/log/master:/var/log/mysql # データベースデータ(永続化)
- ./mysql/db/master:/var/lib/mysql # データベースログ
- ./mysql/master/conf.d/:/etc/mysql/conf.d # データベース設定ファイル
- ./mysql/master/initdb.d:/docker-entrypoint-initdb.d # 初期スクリプトファイル
tty: true
environment:
TZ: Asia/Tokyo
MYSQL_ROOT_PASSWORD: root_db_pass
MYSQL_DATABASE: wordpress_db
MYSQL_USER: wordpress_db_user
MYSQL_PASSWORD: wordpress_db_pass
build:
context: .
dockerfile: ./mysql/Dockerfile-mysql
ビルドコンテキスト(build context)
カレントなワーキングディレクトリのことを ビルドコンテキスト(build context)と呼ぶそうです
以下に説明がありました
Dockerfile 記述のベストプラクティス
Hints, tips and guidelines for writing clean, reliable Dockerfiles

コメント