Composeファイル – docker

日々の業務

Composeファイル

Compose ファイルとは、Docker アプリケーション用のサービス、ネットワーク、ボリュームを定義した YAML ファイル です。

Compose ファイルのデフォルトのパスは compose.yaml (推奨)か compose.yml です。Compose 実装は、下位互換性のために docker-compose.yamldocker-compose.yml もサポート すべきです。(SHOULD) 両方のファイルが存在する場合、 Compose 実装は標準である compose.yaml を優先 しなければいけません(MUST)

https://docs.docker.jp/compose/compose-file/index.html

前提知識

YAMLについて

YAMLの構造は、key-Value形式で書きます。

YAML文法(書き方のパターン)
  • キー:スカラー型
version: '1'
  • キー:配列
volumes:
   - ./xx.ini:/usr/local/etc/xx.ini:ro
   - ..:/var/www:rw
  • キー:連想配列
environment:
   MYSQL_DATABASE: mysqldb
   MYSQL_USER: taro
  • コメント
# シャープでコメントが書ける

Composeファイルの書き方

#Composeファイルの定義バージョン
version: '3'

#サービスの登録
services:
  #バックエンドのサービス
  back:
    #${VERSION}は変数。variables.envに設定された変数。
    image: dockertaiga/back:${VERSION}
    #コンテナ名を「taiga-back」とする
    container_name: taiga-back
    #
    restart: unless-stopped
    depends_on:
      - db
      - events
    networks:
      - default
    volumes:
      - ./data/media:/taiga-media
      - ./conf/back:/taiga-conf
    #variables.envを読み込み、環境変数を設定
    env_file:
      - variables.env

トップレベルの要素

備考
versionversion: “3”
or
version: “3.8”
Composeファイルの定義バージョン。バージョンをあげると、使用できるパラメータが増えている。参考リンク
省略するとバージョン1が使用されるため必ず記載する
servicesservices:
servicename1:
— 省略 —
servicename2:
— 省略 —
PHP、DBといったサービスを登録する。
サービス名は、自由に登録できる。
volumes複数のコンテナを横断してボリュームを再利用する場合に記載する
networksコンテナのネットワークを設定できる

services

オプション備考
buildbuild: ./dockerコンテナイメージを作成するための構築情報を指定する。
パスは、ComposeFileからの相対パスで指定したディレクトリ名。
ディレクトリには、Dockerfileが含まれている必要がある。
portsports:
– “3320:3306”
コンテナのポートを公開する。
ホストのポート:コンテナのポート
volumesvolumes:
– .:/var/www/html:ro
コンテナがアクセスできるホストのパス
コロンを使って
ホストのパス : コンテナのパス : アクセスモード

アクセスモード
ro:読み込み専用
rw:読み書き
working_dirworking_dir: /workコンテナのルートディレクトリ

networks

オプション備考
driverdriver: bridge
driver: overlay
bridge
単一のdockerエンジン上でネットワークを分離する

overlay
複数のdockerエンジン上に横断することが可能

コメント

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