docker-compose upでエラー

エラー

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

コメント

タイトルとURLをコピーしました