-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yaml
54 lines (54 loc) · 2.27 KB
/
docker-compose.yaml
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
version: '3'
services:
# HTTPSのリバースプロキシ用コンテナ
# API Gatewayがcomposeの外で動いてるので、ホストマシンへのリクエストに対してこいつを噛ませる必要がある
# あくまで同じネットワーク内にいるのは各Lambdaのコンテナのみなので、それを直接Proxyすることはできない
# ※現在、Docker Desktopでのみ動作します。使ってない人はwebコンテナ経由で呼ばないようにしましょう。
# https://github.com/docker/cli/issues/2290 を待ちましょう。
web:
container_name: ${COMPOSE_PROJECT_NAME}-web
environment:
- TZ=Asia/Tokyo
build:
context: ./local/web
args:
- DEV_HOSTNAME=localhost # このAPIのドメイン
- FRONTEND_HOST=localhost # フロントエンドのホスト名 ※画面が別にあり、同時に起動したい場合はそれのホストを入れる
- FRONTEND_PORT=${FRONTEND_PORT} # フロントエンドのポート ※画面が別にあり、同時に起動したい場合はそれのホストを入れる
- PROXY_API_PORT=${PROXY_API_PORT} # sam local start-apiした時のポート
tty: true
volumes:
- ./local/logs/nginx:/var/log/nginx
# - ./local/secrets/cert:/etc/cert # TODO SSL対応するなら必要
ports:
- "${HTTPS_PORT}:443"
- "${HTTP_PORT}:80"
networks:
- default-network
extra_hosts:
- api:host-gateway # ホストマシン側のIPに対してapiと名付けておく
db:
container_name: ${COMPOSE_PROJECT_NAME}-db # composeの外でも使うので名前をつける
image: mysql:8.3.0
tty: true
environment:
MYSQL_ROOT_PASSWORD: R1o2o3t4P5a6s7s8w9o0rd
MYSQL_DATABASE: sample
MYSQL_USER: sample_user
MYSQL_PASSWORD: U1s2e3r4P5a6s7s8w9o0rd
TZ: Etc/GMT
ports:
- "${DB_PORT}:3306"
volumes:
- db-volume:/var/lib/mysql
- ./local/db/conf/my.cnf:/etc/mysql/conf.d/my.cnf
- ./local/db/initdb.d:/docker-entrypoint-initdb.d
- ./local/logs/db:/var/log/mysql/
networks:
- default-network
volumes:
db-volume:
networks:
default-network:
driver: bridge
name: ${COMPOSE_PROJECT_NAME}-network # composeの外でも使うので名前をつける