✏️

[自分用]docker-compose.yamlテンプレ

2022/04/17に公開

この記事について

完全に自分用の備忘録.
ローカルpc上でdocker-composeファイルを書くときに使用する項目を忘れがちなので,よく使う項目を記載しておく.

Dockerfile

後で記載予定.

docker-compose.yaml

version: '3.8'

services:
  svc-name1: # service name
    build:
      context: ./dockerfile # Dockerfileの場所
      dockerfile: Dockerfile1 # Dockerfileの名前
    image: my_image_name # image名の指定
    container_name: my_container_name # container名の指定
    hostname: my_host_name # host名の指定
    restart: always
    privileged: true
    environment:  # 環境変数の指定(下記はmysqlの一例)
      MYSQL_ROOT_PASSWORD: rootPass
      MYSQL_DATABASE: testdb  # optional
      MYSQL_USER: user1  # optional
      MYSQL_PASSWORD: user1Pass  # optional
#      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"  # optional
#      MYSQL_RANDOM_ROOT_PASSWORD: "yes"  # optional
#      MYSQL_ONETIME_PASSWORD: "yes"  # optional (MySQL 5.6 or above)
#      MYSQL_INITDB_SKIP_TZINFO: ""  # optional
      TZ: "Asia/Tokyo"
#    ports:  # portの指定(host:container)
#      - "3306":"3306"
    volumes:
      - ./myVolume/data:/work/data
      - ./myVolume/src:/work/src
    networks:
      - my_network
    command: echo 'Hello svc-name1' # コンテナ起動時に実行するコマンド
  svc-name2:
    build:
      contexts: ./dockerfile
      dockerfile: Dockerfile2
    image: my_image_name2
    networks:
      - my_network
    volumes:
      - ./myVolume/data2:/work/data
    ports:
      - "8080":"80"
    restart: always
    environment:
    depends_on:
      - svc-name1 # コンテナの起動タイミングを指定(svc-name1が起動した後に起動させる)
networks:
  my_network:
# volumes:  # バインドボリュームを使う場合は不要
#     mysqlVol1:

Discussion