-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
134 lines (125 loc) · 3.53 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
122
123
124
125
126
127
128
129
130
131
132
133
134
version: "3.9"
services:
webapp:
image: ghcr.io/i-vresse/haddock3-webapp:${WEBAPP_TAG:-latest}
build:
context: ../..
dockerfile: deploy/Dockerfile
restart: always
entrypoint: /usr/bin/sh
command: ["-c", "/wait && npm run setup && npm run start"]
depends_on:
bartender:
condition: service_started
webappdb:
condition: service_healthy
h3restraints:
condition: service_started
ports:
- "8080:8080"
environment:
- BARTENDER_API_URL=http://bartender:8000
- DATABASE_URL=postgresql://postgres:postgres@webappdb:5432/postgres
- BARTENDER_PRIVATE_KEY=/certs/private_key.pem
- SESSION_SECRET_FILE=/certs/session.secret
- WAIT_PATHS=/certs/private_key.pem
- HADDOCK3_RESTRAINTS_URL=http://h3restraints:5000
- HADDOCK3WEBAPP_REFRESH_RATE_MS
volumes:
- bartender-certs:/certs:ro
webappdb:
image: postgres:15.4-bullseye
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=postgres
volumes:
- webapp-db-data:/var/lib/postgresql/data
healthcheck:
test: pg_isready -U postgres
interval: 2s
timeout: 3s
retries: 40
bartender:
image: ghcr.io/i-vresse/bartender:${BARTENDER_TAG:-latest}
build:
context: ..
dockerfile: ./Dockerfile.bartenderhaddock3
restart: always
command: sh -c '/wait && alembic upgrade head && bartender serve'
volumes:
- type: bind
source: ./bartender-config.yaml
target: /opt/bartender/config.yaml
- bartender-certs:/certs:ro
- bartender-job-data:/jobs
depends_on:
bartenderdb:
condition: service_healthy
redis:
condition: service_started
environment:
BARTENDER_HOST: 0.0.0.0
BARTENDER_DB_HOST: bartenderdb
BARTENDER_DB_PORT: 5432
BARTENDER_DB_USER: postgres
BARTENDER_DB_PASS: postgres
BARTENDER_DB_BASE: postgres
BARTENDER_WORKERS_COUNT: 4
BARTENDER_LOG_LEVEL: error
BARTENDER_PUBLIC_KEY: /certs/public_key.pem
WAIT_PATHS: /certs/private_key.pem
bartenderdb:
image: postgres:15.4-bullseye
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=postgres
volumes:
- bartender-db-data:/var/lib/postgresql/data
healthcheck:
test: pg_isready -U postgres
interval: 2s
timeout: 3s
retries: 40
redis:
image: redis:6.2.6
restart: always
bartenderworker:
image: ghcr.io/i-vresse/bartender:${BARTENDER_TAG:-latest}
build:
context: ..
dockerfile: ./Dockerfile.bartenderhaddock3
restart: always
command: sh -c 'bartender perform'
volumes:
- type: bind
source: ./bartender-config.yaml
target: /opt/bartender/config.yaml
- bartender-job-data:/jobs
depends_on:
redis:
condition: service_started
certmaker:
image: ghcr.io/i-vresse/certmaker:${CERTMAKER_TAG:-latest}
build:
context: ..
dockerfile: ./Dockerfile.openssl
volumes:
- bartender-certs:/certs
working_dir: /certs
restart: "no"
h3restraints:
image: ghcr.io/i-vresse/bartender:${BARTENDER_TAG:-latest}
build:
context: ..
dockerfile: ./Dockerfile.bartenderhaddock3
restart: always
command: sh -c 'uvicorn --host 0.0.0.0 --port 5000 haddock.clis.restraints.webservice:app'
volumes:
webapp-db-data:
bartender-db-data:
bartender-job-data:
bartender-certs: