Composeファイル
Compose ファイルとは、Docker アプリケーション用のサービス、ネットワーク、ボリュームを定義した YAML ファイル です。
Compose ファイルのデフォルトのパスは
https://docs.docker.jp/compose/compose-file/index.htmlcompose.yaml(推奨)かcompose.ymlです。Compose 実装は、下位互換性のためにdocker-compose.yamlとdocker-compose.ymlもサポート すべきです。 両方のファイルが存在する場合、 Compose 実装は標準であるcompose.yamlを優先 しなければいけません 。
前提知識
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
トップレベルの要素
| 例 | 備考 | |
|---|---|---|
| version | version: “3” or version: “3.8” | Composeファイルの定義バージョン。バージョンをあげると、使用できるパラメータが増えている。参考リンク 省略するとバージョン1が使用されるため必ず記載する |
| services | services: servicename1: — 省略 — servicename2: — 省略 — | PHP、DBといったサービスを登録する。 サービス名は、自由に登録できる。 |
| volumes | 複数のコンテナを横断してボリュームを再利用する場合に記載する | |
| networks | コンテナのネットワークを設定できる |
services
| オプション | 例 | 備考 |
|---|---|---|
| build | build: ./docker | コンテナイメージを作成するための構築情報を指定する。 パスは、ComposeFileからの相対パスで指定したディレクトリ名。 ディレクトリには、Dockerfileが含まれている必要がある。 |
| ports | ports: – “3320:3306” | コンテナのポートを公開する。 ホストのポート:コンテナのポート |
| volumes | volumes: – .:/var/www/html:ro | コンテナがアクセスできるホストのパス コロンを使って ホストのパス : コンテナのパス : アクセスモード アクセスモード ro:読み込み専用 rw:読み書き |
| working_dir | working_dir: /work | コンテナのルートディレクトリ |
networks
| オプション | 例 | 備考 |
|---|---|---|
| driver | driver: bridge driver: overlay | bridge 単一のdockerエンジン上でネットワークを分離する overlay 複数のdockerエンジン上に横断することが可能 |


コメント