エラー
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
コメント