-
Notifications
You must be signed in to change notification settings - Fork 3
/
docker-compose.initial.yml
90 lines (85 loc) · 2.41 KB
/
docker-compose.initial.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
services:
db:
image: "postgres:16"
container_name: ops-db
security_opt:
- no-new-privileges:true # Resolve semgrep https://sg.run/0n8q
environment:
- POSTGRES_PASSWORD=local_password
read_only: true # Resolve semgrep https://sg.run/e4JE
tmpfs: /var/run/postgresql/
volumes:
- ./backend/data_tools/ops_db_sql_init:/docker-entrypoint-initdb.d
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
data-import:
build:
context: ./backend/
dockerfile: Dockerfile.data-tools
container_name: ops-data-import
environment:
- ENV=local
- SQLALCHEMY_DATABASE_URI=postgresql://ops:ops@db:5432/postgres
command: /bin/sh -c "./data_tools/scripts/initial_data.sh"
volumes:
- ./backend/ops_api:/home/app/ops_api
depends_on:
db:
condition: service_healthy
disable-users:
build:
context: ./backend/
dockerfile: Dockerfile.data-tools
container_name: disable-users
environment:
- ENV=local
- SQLALCHEMY_DATABASE_URI=postgresql://ops:ops@db:5432/postgres
command: ["/home/app/.venv/bin/python", "./data_tools/src/disable_users/disable_users.py"]
depends_on:
db:
condition: service_healthy
data-import:
condition: service_completed_successfully
backend:
build:
context: ./backend/
dockerfile: Dockerfile.ops-api
container_name: ops-backend
ports:
- "8080:8080"
command: /bin/sh -c " . .venv/bin/activate && python -m flask run --debug --host=0.0.0.0 --port=8080"
environment:
- JWT_PRIVATE_KEY
- JWT_PUBLIC_KEY
- OPS_CONFIG=environment/local/container.py
volumes:
- ./backend/ops_api/ops:/home/app/ops_api/ops
depends_on:
db:
condition: service_healthy
data-import:
condition: service_completed_successfully
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:8080" ]
interval: 10s
timeout: 10s
retries: 10
frontend:
build:
context: ./frontend/
dockerfile: Dockerfile
container_name: ops-frontend
environment:
- REACT_APP_BACKEND_DOMAIN=http://localhost:8080
- VITE_BACKEND_DOMAIN=http://localhost:8080
ports:
- "3000:3000"
depends_on:
- backend
volumes:
- ./frontend/src:/home/app/src