既存のメイン機能と3.7とか比較的新しい部分のメモ
build
dockerfileを指定することが可能でdevやらstagingやらでDockerfileという名称以外を指定することが可能 argsは辞書形式で環境変数を指定してビルドできる
version: "3.7" services: webapp: build: context: ./dir dockerfile: Dockerfile-alternate args: buildno: 1
cache_from
3.2から登場 dockerの持つレイヤキャッシュを使用することができる。 cacheに指定する際はリストで指定ができる。ヒットしない場合は次のイメージを評価してくれるようです。
build: context: . cache_from: - alpine:latest - corp/web_app:3.14
SHM_SIZE
/dev/shmをコンテナから使用できるようにするオプション。 io性能が求められるケースで使用。
build: context: . shm_size: '2gb'
REPLICAS
コンテナの実行数を指定
version: "3.7" services: worker: image: dockersamples/examplevotingapp_worker networks: - frontend - backend deploy: mode: replicated replicas: 6
DEPENDS_ON
コンテナ間の起動の際の起動順の依存関係を指定 DB => アプリケーションのような起動順を設定できる
version: "3.7" services: web: build: . depends_on: - db - redis redis: image: redis db: image: postgres
RESTART_POLICY
コンテナの状態を設定しコンテナが終了した際にリスタートするかを設定
version: "3.7" services: redis: image: redis:alpine deploy: restart_policy: condition: on-failure delay: 5s max_attempts: 3 window: 120s
DEVICE
ホストのデバイスをコンテナ内から使用
devices: - "/dev/ttyUSB0:/dev/ttyUSB0"
ENV_FILE
ファイルから環境変数を取得する際に使用 secret情報などをこちらに書き込むなどの用途
env_file: - ./common.env - ./apps/web.env - /opt/secrets.env
extra_hosts
/etc/hostsに追記する情報を追記する。 docker-composeのネットワーク外のホストなどを追記しておく子が可能
extra_hosts: - "somehost:162.242.195.82" - "otherhost:50.31.209.229"
LOGGING
--log-driverで指定したdocker runのオプションの内容を指定
logging: driver: syslog options: syslog-address: "tcp://192.168.0.42:123"