-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yaml
138 lines (129 loc) · 4.14 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
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
version: '3.8'
x-php:
&php
build:
context: ./main-app
dockerfile: ./.docker/php/Dockerfile
target: app_php_dev
environment:
DB_HOST: ${DB_HOST:?provide db host to .env}
DB_NAME: ${DB_NAME:?provide db name to .env}
DB_USER: ${DB_USER:?provide db user to .env}
S3_KEY: ${AWS_KEY:?Provide access key to env}
S3_SECRET: ${AWS_SECRET:?Provide secret key to env}
DB_PASSWORD: ${DB_PWD:?provide db password to .env}
TEMPORAL_ADDRESS: ${TEMPORAL_ADDRESS}
env_file:
- .env
depends_on:
emg-db:
condition: service_healthy
minio:
condition: service_healthy
temporal:
condition: service_started
services:
main-app:
<<: *php
command: "/app/rr serve -c .rr.yaml"
# command: 'bash -c "while true; do sleep 10000; done"' # can use this to avoid cycle reboot and fix issue in container
ports:
- "8090:8090"
volumes:
- ./main-app:/app
healthcheck:
test: [ 'CMD-SHELL', 'wget --spider -q "http://127.0.0.1:8082/health?plugin=http&plugin=rpc"' ]
interval: 2s
timeout: 2s
networks:
- emg-net
temporal:
build:
context: ./docker/temporal
dockerfile: Dockerfile
container_name: temporal
healthcheck:
test: [ "CMD","tctl","--address", "temporal:7233", "workflow", "list" ]
interval: 1s
timeout: 5s
retries: 30
depends_on:
- temporal-db
environment:
DB: ${TEMPORAL_DB_TYPE}
DB_PORT: ${TEMPORAL_DB_PORT}
POSTGRES_USER: ${TEMPORAL_DB_USER}
POSTGRES_PWD: ${TEMPORAL_DB_PWD}
POSTGRES_SEEDS: ${TEMPORAL_HOST}
DYNAMIC_CONFIG_FILE_PATH: config/dynamicconfig/development-sql.yaml
networks:
- emg-net
temporal-db:
image: postgres:14.3-alpine3.15
container_name: temporal-db
environment:
POSTGRES_PASSWORD: ${TEMPORAL_DB_USER}
POSTGRES_USER: ${TEMPORAL_DB_PWD}
networks:
- emg-net
temporal-web:
image: temporalio/web:1.13.0
container_name: temporal-web
depends_on:
temporal:
condition: service_healthy
environment:
TEMPORAL_GRPC_ENDPOINT: ${TEMPORAL_ADDRESS}
TEMPORAL_PERMIT_WRITE_API: true
ports:
- ${TEMPORAL_PORT}:${TEMPORAL_SOURCE_PORT}
networks:
- emg-net
emg-db:
image: postgres:15.2-alpine3.17
ports:
- ${DB_PORT}:${DB_SOURCE_PORT}
environment:
POSTGRES_DB: ${DB_NAME:?provide db name to .env}
POSTGRES_USER: ${DB_USER:?provide db user to .env}
POSTGRES_PASSWORD: ${DB_PWD:?provide db password to .env}
healthcheck:
test: pg_isready -d $$POSTGRES_DB -U $$POSTGRES_USER
interval: 2s
timeout: 5s
start_period: 2s
networks:
- emg-net
file-scanner:
build:
context: ./file-scanner
dockerfile: ./.docker/Dockerfile
depends_on:
temporal:
condition: service_healthy
volumes:
- ./file-scanner:/app
environment:
MINIO_ENDPOINT: ${MINIO_ENDPOINT}
AWS_BUCKET: ${AWS_BUCKET}
TEMPORAL_ADDRESS: ${TEMPORAL_ADDRESS}
networks:
- emg-net
minio:
image: minio/minio:RELEASE.2022-06-07T00-33-41Z.fips
command: server --console-address ":9001" /data
ports:
- ${MINIO_PORT}:9000
- ${MINIO_CLIENT_PORT}:9001
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]
interval: 5s
timeout: 20s
retries: 3
environment:
MINIO_ACCESS_KEY: ${AWS_KEY:?Provide access key to env}
MINIO_SECRET_KEY: ${AWS_SECRET:?Provide secret key to env}
networks:
- emg-net
networks:
emg-net: