generated from Emerson-Valentim/service-boilerplate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
121 lines (114 loc) · 2.6 KB
/
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
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
version: "3.8"
services:
localstack:
image: localstack/localstack:0.14.2
ports:
- "4566-4583:4566-4583"
environment:
- SERVICES=s3
- EDGE_PORT=4566
- DEBUG=1
- DATA_DIR=/tmp/localstack/data
- AWS_ACCESS_KEY_ID=xxx
- AWS_SECRET_ACCESS_KEY=xxx
- DEFAULT_REGION=sa-east-1
volumes:
- "${TMPDIR:-/tmp}/localstack:/tmp/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
- ./localstack:/docker-entrypoint-initaws.d
healthcheck:
test: ["CMD", "awslocal", "s3api", "ls"]
interval: 1s
timeout: 3s
retries: 30
extra_hosts:
- "host.docker.internal:172.17.0.1"
#API configuration
api:
build:
context: .
dockerfile: ./services/api/Dockerfile
env_file:
- ./services/api/.env
networks:
- api
volumes:
- ./services/api/build:/home/ubuntu/services/api/build
command: npx nodemon build/start.js
depends_on:
- mongo
- mongo-workbench
- localstack
ports:
- "4000:4000"
#Notification configuration
socket:
build:
context: .
dockerfile: ./services/notification/Dockerfile
env_file:
- ./services/notification/.env
networks:
- socket
- mongo
volumes:
- ./services/notification/build:/home/ubuntu/services/notification/build
command: npx nodemon build/start.js
ports:
- "3000:3000"
depends_on:
- mongo
- mongo-workbench
extra_hosts:
- "host.docker.internal:172.17.0.1"
#Redis configuration
redis:
image: redis
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 1s
timeout: 3s
retries: 30
networks:
- socket
#MongoDB configuration
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
ports:
- "8080:27017"
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongo mongo:27017/test --quiet
interval: 10s
timeout: 10s
retries: 5
start_period: 40s
networks:
- mongo
extra_hosts:
- "host.docker.internal:172.17.0.1"
mongo-workbench:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
depends_on:
- mongo
networks:
- mongo
networks:
api:
driver: bridge
socket:
driver: bridge
mongo:
driver: bridge