この記事の目的
この記事は、
ちょっとしたとき、すぐ使えるdocker-compose.ymlのひな型のメモ
を目的としています。
要約
ちょっとdockerコンテナを試したい。
1つのコンテナ(postgresとかGitlabとか)を立てて使いたい。
といったときに、パパっと使うためのdocker-composeのひな型を考えてみました。
本題
★ひな型
version: "3.7" services: container_name: #任意の名前を付ける。 image: postgres:11 #env_file: #環境変数の設定が必要な場合は、このファイルを作って、そこに記述する #- environment.env deploy: resources: #リソースの制限 limits: #CPU,メモリの上限設定 cpus: '0.50' memory: 50M reservations: #CPU,メモリの上限設定 cpus: '0.25' memory: 25M logging: #大量にログをはくコンテナだと、平気で30Gとか使ってくるから許容できる範囲を計算する driver: json-file #json-file(default),syslog,none options: max-file: "10" max-size: "200k" volumes: #docker for windows環境では、マウント対象の権限に注意が必要 - postgres-db:/var/lib/postgresql/data networks: postgres-nw: ports: - 5432:5432 #host:container ### volumes: postgres-db: #Volumeの名前を設定する #docker-composeで管理しているVolumeを利用する→false #そうでない(Dockerコマンドで別作成したVolumeを利用する)→true #注意:falseの場合、docker-compose downしたときに、コンテナと一緒に削除される external: false #あらかじめ作る場合:docker volume create <volume name> ### networks: postgres-nw: #ネットワークの名前を指定 external: false #あらかじめ作る場合:docker network create <network name>
★依存関係を持つコンテナの起動確認をする
depends_onだけでは、順序を保証してコンテナを起動させることはできないため、
以下のようなスクリプトを使って対応するらしいです。
docs.docker.com
#!/bin/bash status_code=0 i=1 while [ $status_code -ne 200 ] do sleep 2s status_code=`curl http://elasticsearch:9200 -iLs -o /dec/null -w '%{http_code}\n'` done