-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yaml
executable file
·70 lines (63 loc) · 1.75 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
version: "3"
services:
redis:
container_name: redis
image: redis:5.0
ports:
- 6379:6379
mysql:
container_name: mysql
image: mysql:5.7
ports:
- 3306:3306
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
volumes:
- ./db/init:/docker-entrypoint-initdb.d
- db-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_ARBITRARY: 1
PMA_HOST: mysql
PMA_USER: root
PMA_PASSWORD: "ca-tech-dojo"
links:
- mysql
ports:
- 4000:80
swagger-ui:
image: swaggerapi/swagger-ui:latest
environment:
SWAGGER_JSON: /api/api-document.yaml
volumes:
- ./api-document.yaml:/api/api-document.yaml:ro
ports:
- 127.0.0.1:3000:8080
api:
container_name: api
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080"
environment:
MYSQL_HOST: mysql
# depends_on は起動順を制御するだけ
depends_on:
- mysql
entrypoint: ["/app/wait-for.sh", "mysql:3306", "--"]
# entrypoint を設定すると、Dockerfile の ENTRYPOINT で設定されたデフォルトのエントリポイントが上書きされ、イメージのデフォルトコマンドがクリアされる。
# つまり、Dockerfile に CMD 命令があれば、それは無視される。
# よって、docker-compose.yml においても実行するコマンドを明示的に指定する必要がある。
command: ["/app/main"]
proxy:
image: nginx:latest
volumes:
- ./docker/proxy.conf:/etc/nginx/conf.d/default.conf
ports:
- "3010:3010"
volumes:
db-data:
driver: local