docker-compose.yml
| docker-compose.yml |
|---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | services:
example-service:
container_name: example-service
environment:
- API_KEY=${API_KEY:?} # ${ENV_NAME:?}で必須にできる
image: ${WEB_BACKEND_IMAGE:?}
# 以下で./src/example-service/Dockerfileからビルドすることができる
# build:
# context: ./src/example-service
# dockerfile: ./Dockerfile
# args: # イメージをビルドする時に使う環境変数
# - DATABASE_URL=mysql://$MARIADB_USER:$MARIADB_PASSWORD@mariadb:3306/$MARIADB_DATABASE
ports:
- "${PORT:-8080}:8080" # ${ENV_NAME:-DEFAULT_VALUE}でデフォルト値を指定できる
restart: always
volumes:
- ./example-service/settings.conf:/app/settings.conf:ro
# env_file:
# - .env # .envを明示的に読み込ませる
|
Compose file reference | Docker Docs
| docker-compose.yml |
|---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 | services: # この下に複数サービスを定義する
mariadb: # サービス名
image: mariadb:11.6.2 # 使用するイメージ名とタグ
restart: always # コンテナ終了時の振る舞い(no: 再起動しない, always: 常に再起動する, on-failure[:max-retries]: 終了コードがエラーの場合n回再起動する)
environment: # コンテナ実行時の環境変数
- MARIADB_USER=$MARIADB_USER # .envから参照させることができる
- MARIADB_PASSWORD=$MARIADB_PASSWORD
- MARIADB_DATABASE=$MARIADB_DATABASE
- MARIADB_ROOT_PASSWORD=$MARIADB_PASSWORD
ports: # ポートの設定 (${ホストのポート}:${コンテナのポート})
- 3306:3306
volumes: # ボリュームの設定 (${ホストのディレクトリ}:${コンテナのディレクトリ})
- ./mariadb/var/lib/mysql:/var/lib/mysql
notepad-backend:
build: # イメージ名だけでなく、細かく指定したい場合はimageでなくbuildを使用する
context: ./notepad-backend # Dockerfileのあるディレクトリ
dockerfile: Dockerfile # Dockerfileのファイル名
args: # イメージをビルドする時に使う環境変数
- DATABASE_URL=mysql://$MARIADB_USER:$MARIADB_PASSWORD@mariadb:3306/$MARIADB_DATABASE
restart: always
environment: # コンテナ実行時の環境変数
- DATABASE_URL=mysql://$MARIADB_USER:$MARIADB_PASSWORD@mariadb:3306/$MARIADB_DATABASE
ports:
# ホストマシンからポートにアクセスしたいときは設定する。
# サービス同士は設定せずともhttp://${SERVICE_NAME}:${CONTAINER_PORT}などでアクセスできる。
- 18081:8080
depends_on:
- mariadb # 先に起動していないといけないサービス
|