Skip to content

Commit e52cc6a

Browse files
committed
new compose files
1 parent 1b51185 commit e52cc6a

File tree

7 files changed

+337
-31
lines changed

7 files changed

+337
-31
lines changed

.github/workflows/release.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,3 +199,29 @@ jobs:
199199

200200

201201

202+
203+
test-dockerhub-production-compose-file:
204+
runs-on: ubuntu-24.04
205+
206+
needs: [push_api_dockerhub, push_database_dockerhub, push_jobs_server_dockerhub, push_proxy_dockerhub, push_worker_dockerhub]
207+
208+
steps:
209+
- uses: actions/checkout@v4
210+
211+
- name: run compose
212+
run: docker compose up -d
213+
214+
test-ghcr-production-compose-file:
215+
runs-on: ubuntu-24.04
216+
217+
needs: [push_api_ghcr, push_database_ghcr, push_jobs_server_ghcr, push_proxy_ghcr, push_worker_ghcr]
218+
219+
steps:
220+
- uses: actions/checkout@v4
221+
222+
- name: run compose
223+
run: docker compose -f ./ghcr-prod-compose.yml up -d
224+
225+
226+
227+

.github/workflows/tests.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
- uses: actions/checkout@v4
1111

1212
- name: Run proxy
13-
run: docker compose up -d --build proxy
13+
run: docker compose -f ./dev-compose.yml up -d --build proxy
1414

1515
- name: Get Dev dependencies
1616
run: |
@@ -32,7 +32,7 @@ jobs:
3232
- uses: actions/checkout@v4
3333

3434
- name: Run database
35-
run: docker compose up -d --build db
35+
run: docker compose -f ./dev-compose.yml up -d --build db
3636

3737
- name: Test status
3838
timeout-minutes: 1
@@ -65,8 +65,8 @@ jobs:
6565

6666
- name: Run services
6767
run: |
68-
docker compose up -d --build jobs-server && \
69-
docker compose up -d --build api
68+
docker compose -f ./dev-compose.yml up -d --build jobs-server && \
69+
docker compose -f ./dev-compose.yml up -d --build api
7070
7171
- name: Get Dev dependencies
7272
run: |
@@ -132,8 +132,8 @@ jobs:
132132

133133
- name: setup api usage tests
134134
run: |
135-
docker compose up -d --build jobs-server && \
136-
docker compose up -d --build api
135+
docker compose -f ./dev-compose.yml up -d --build jobs-server && \
136+
docker compose -f ./dev-compose.yml up -d --build api
137137
138138
- name: Get Dev dependencies
139139
run: |
@@ -158,7 +158,7 @@ jobs:
158158
- '3.10'
159159
os:
160160
- ubuntu-20.04
161-
161+
162162
steps:
163163
- uses: actions/checkout@v4
164164

@@ -173,4 +173,4 @@ jobs:
173173
174174
- name: Run tox checks
175175
working-directory: ./server/worker
176-
run: tox
176+
run: tox

.vscode/settings.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"datname",
99
"dockerhub",
1010
"DOCKERHUB",
11+
"dpbm",
1112
"ENDC",
1213
"expval",
1314
"fullstorydev",
@@ -43,11 +44,14 @@
4344
"pyrightconfig",
4445
"pytest",
4546
"PYTHONUNBUFFERED",
47+
"qapi",
4648
"qasm",
4749
"qexec",
4850
"qiskit",
51+
"qjobsserver",
4952
"qnet",
5053
"qproxy",
54+
"qworker",
5155
"rabbitmq",
5256
"referer",
5357
"timestamptz",

compose.yml

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
services:
22
proxy:
33
container_name: proxy
4-
build:
5-
context: ./proxy/
6-
dockerfile: Dockerfile
4+
image: dpbm32/qproxy
75
depends_on:
86
- api
97
- jobs-server
@@ -20,16 +18,13 @@ services:
2018
db:
2119
container_name: postgres-db
2220
hostname: postgresInstance
23-
build:
24-
context: ./server/database/
25-
dockerfile: Dockerfile
21+
image: dpbm32/qdb
2622
env_file:
2723
- ./db.env
2824
- ./postgres.env
2925
ports:
3026
- '5432:5432'
3127
volumes:
32-
# https://stackoverflow.com/questions/41637505/how-to-persist-data-in-a-dockerized-postgres-database-using-volumes
3328
- data:/var/lib/postgresql/data
3429
- postgres:/var/run/postgresql
3530
- logs:/var/log
@@ -59,9 +54,7 @@ services:
5954
jobs-server:
6055
container_name: jobs-server
6156
hostname: jobsServerInstance
62-
build:
63-
context: ./server/
64-
dockerfile: jobsServer.Dockerfile
57+
image: dpbm32/qjobsserver
6558
ports:
6659
- '50051:50051'
6760
depends_on:
@@ -71,7 +64,7 @@ services:
7164
- ./db.env
7265
- ./queue.env
7366
environment:
74-
HOST: 0.0.0.0
67+
HOST: 172.18.0.29
7568
PORT: 50051
7669
QASM_PATH: /qasm
7770
LOG_FILE_PATH: /logs/jobs-server/logs.log
@@ -86,9 +79,7 @@ services:
8679
api:
8780
container_name: api
8881
hostname: apiInstance
89-
build:
90-
context: ./server/
91-
dockerfile: restAPI.Dockerfile
82+
image: dpbm32/qapi
9283
depends_on:
9384
- db
9485
ports:
@@ -99,8 +90,7 @@ services:
9990
GIN_MODE: release
10091
PORT: 3000
10192
LOG_FILE_PATH: /logs/api/logs.log
102-
# uncomment this for deploy
103-
# TRUSTED_PROXY: 172.18.0.30
93+
TRUSTED_PROXY: 172.18.0.30 # only incoming requests from the proxy can be accepted
10494
restart: always
10595
volumes:
10696
- logs:/logs
@@ -109,14 +99,12 @@ services:
10999
ipv4_address: 172.18.0.28
110100

111101
workers:
112-
build:
113-
context: ./server/worker/
114-
dockerfile: Dockerfile
102+
image: dpbm32/qworker
115103
depends_on:
116104
- jobs-server
117105
deploy:
118106
mode: replicated
119-
replicas: 4
107+
replicas: 4 # you can add up to 25 replicas
120108
env_file:
121109
- ./queue.env
122110
- ./db.env
@@ -142,7 +130,6 @@ volumes:
142130
networks:
143131
qnet:
144132
external: false
145-
#https://stackoverflow.com/questions/27937185/assign-static-ip-to-docker-container
146133
ipam:
147134
driver: default
148135
config:

dev-compose.yml

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
services:
2+
proxy:
3+
container_name: proxy
4+
build:
5+
context: ./proxy/
6+
dockerfile: Dockerfile
7+
depends_on:
8+
- api
9+
- jobs-server
10+
ports:
11+
- '8080:8080'
12+
- '443:443'
13+
volumes:
14+
- logs:/logs
15+
restart: always
16+
networks:
17+
qnet:
18+
ipv4_address: 172.18.0.30
19+
20+
db:
21+
container_name: postgres-db
22+
hostname: postgresInstance
23+
build:
24+
context: ./server/database/
25+
dockerfile: Dockerfile
26+
env_file:
27+
- ./db.env
28+
- ./postgres.env
29+
ports:
30+
- '5432:5432'
31+
volumes:
32+
# https://stackoverflow.com/questions/41637505/how-to-persist-data-in-a-dockerized-postgres-database-using-volumes
33+
- data:/var/lib/postgresql/data
34+
- postgres:/var/run/postgresql
35+
- logs:/var/log
36+
- qasm:/qasm
37+
restart: always
38+
networks:
39+
- qnet
40+
41+
queue-handler:
42+
container_name: rabbitmq
43+
hostname: rabbitmqInstance
44+
image: rabbitmq:4.0.5-alpine
45+
healthcheck:
46+
test: rabbitmq-diagnostics check_port_connectivity
47+
interval: 5s
48+
timeout: 10s
49+
retries: 3
50+
env_file:
51+
- ./rabbitmq.env
52+
restart: always
53+
ports:
54+
- '5672:5672'
55+
- '15672:15672'
56+
networks:
57+
- qnet
58+
59+
jobs-server:
60+
container_name: jobs-server
61+
hostname: jobsServerInstance
62+
build:
63+
context: ./server/
64+
dockerfile: jobsServer.Dockerfile
65+
ports:
66+
- '50051:50051'
67+
depends_on:
68+
- db
69+
- queue-handler
70+
env_file:
71+
- ./db.env
72+
- ./queue.env
73+
environment:
74+
HOST: 0.0.0.0
75+
PORT: 50051
76+
QASM_PATH: /qasm
77+
LOG_FILE_PATH: /logs/jobs-server/logs.log
78+
restart: always
79+
volumes:
80+
- qasm:/qasm
81+
- logs:/logs
82+
networks:
83+
qnet:
84+
ipv4_address: 172.18.0.29
85+
86+
api:
87+
container_name: api
88+
hostname: apiInstance
89+
build:
90+
context: ./server/
91+
dockerfile: restAPI.Dockerfile
92+
depends_on:
93+
- db
94+
ports:
95+
- '3000:3000'
96+
env_file:
97+
- ./db.env
98+
environment:
99+
GIN_MODE: debug
100+
PORT: 3000
101+
LOG_FILE_PATH: /logs/api/logs.log
102+
# uncomment this for deploy
103+
# TRUSTED_PROXY: 172.18.0.30
104+
restart: always
105+
volumes:
106+
- logs:/logs
107+
networks:
108+
qnet:
109+
ipv4_address: 172.18.0.28
110+
111+
workers:
112+
build:
113+
context: ./server/worker/
114+
dockerfile: Dockerfile
115+
depends_on:
116+
- jobs-server
117+
deploy:
118+
mode: replicated
119+
replicas: 4
120+
env_file:
121+
- ./queue.env
122+
- ./db.env
123+
environment:
124+
LOGS_PATH: /logs/worker/
125+
restart: always
126+
volumes:
127+
- qasm:/qasm
128+
- logs:/logs
129+
networks:
130+
- qnet
131+
132+
volumes:
133+
data:
134+
external: false
135+
postgres:
136+
external: false
137+
qasm:
138+
external: false
139+
logs:
140+
external: false
141+
142+
networks:
143+
qnet:
144+
external: false
145+
#https://stackoverflow.com/questions/27937185/assign-static-ip-to-docker-container
146+
ipam:
147+
driver: default
148+
config:
149+
- subnet: 172.18.0.0/27 # 30 usable IPs
150+
ip_range: 172.18.0.0/27
151+
gateway: 172.18.0.1

0 commit comments

Comments
 (0)