1+ services :
2+ certfixer :
3+ command :
4+ - /bin/sh
5+ - /scripts/make_certs.sh
6+ container_name : certfixer
7+ image : alpine:latest
8+ volumes :
9+ - ./scripts:/scripts
10+ - certs:/certs
11+ - client_certs:/client_certs
12+ - /tmp:/temp
13+
14+ postgres :
15+ build :
16+ context : ../../postgresql
17+ container_name : postgres
18+ image : ghcr.io/neicnordic/sensitive-data-archive:PR${PR_NUMBER}-postgres
19+ depends_on :
20+ certfixer :
21+ condition : service_completed_successfully
22+ ports :
23+ - 5432:5432
24+ environment :
25+ - LEGA_IN_PASSWORD=password
26+ - LEGA_OUT_PASSWORD=password
27+ - POSTGRES_PASSWORD=rootpasswd
28+ - POSTGRES_SERVER_CACERT=/certs/ca.crt
29+ - POSTGRES_SERVER_CERT=/certs/db.crt
30+ - POSTGRES_SERVER_KEY=/certs/db.key
31+
32+ healthcheck :
33+ test : [ "CMD", "pg_isready", "-h", "localhost", "-U", "lega_out" ]
34+ interval : 5s
35+ timeout : 20s
36+ retries : 3
37+ volumes :
38+ - certs:/certs
39+
40+ mockauth :
41+ container_name : mockauth
42+ image : python:3.11-slim
43+ ports :
44+ - 8000:8000
45+ environment :
46+ - ISSUER_URL=http://mockauth:8000
47+ volumes :
48+ - ../../sda-doa/test/mock_auth.py:/mock_auth.py
49+ - client_certs:/client_certs
50+ command : >
51+ sh -c "pip install --upgrade pip && pip install aiohttp Authlib && python -u /mock_auth.py 0.0.0.0 8000"
52+
53+ rabbitmq :
54+ build :
55+ context : ../../rabbitmq
56+ image : ghcr.io/neicnordic/sensitive-data-archive:PR${PR_NUMBER}-rabbitmq
57+ container_name : rabbitmq
58+ depends_on :
59+ certfixer :
60+ condition : service_completed_successfully
61+ environment :
62+ - RABBITMQ_SERVER_CACERT=/etc/rabbitmq/ssl/ca.crt
63+ - RABBITMQ_SERVER_CERT=/etc/rabbitmq/ssl/mq.crt
64+ - RABBITMQ_SERVER_KEY=/etc/rabbitmq/ssl/mq.key
65+ - RABBITMQ_SERVER_VERIFY=verify_none
66+ healthcheck :
67+ test :
68+ [
69+ " CMD" ,
70+ " bash" ,
71+ " -c" ,
72+ " rabbitmq-diagnostics -q check_running && rabbitmq-diagnostics -q check_local_alarms" ,
73+ ]
74+ interval : 5s
75+ timeout : 20s
76+ retries : 3
77+ restart : always
78+ volumes :
79+ - certs:/etc/rabbitmq/ssl/
80+ - rabbitmq_data:/var/lib/rabbitmq
81+ ports :
82+ - 5671:5671
83+ - 25671:15671
84+
85+ doa :
86+ container_name : doa
87+ build :
88+ context : ../../sda-doa
89+ image : ghcr.io/neicnordic/sensitive-data-archive:PR${PR_NUMBER}-doa
90+ depends_on :
91+ postgres :
92+ condition : service_healthy
93+ rabbitmq :
94+ condition : service_healthy
95+ certfixer :
96+ condition : service_completed_successfully
97+ ports :
98+ - " 8080:8080"
99+ environment :
100+ - SSL_MODE=verify-ca
101+ - POSTGRES_USER=postgres
102+ - POSTGRES_DB=sda
103+ - POSTGRES_PASSWORD=rootpasswd
104+ - DB_INSTANCE=postgres
105+ - SSL_ENABLED=false
106+ - BROKER_HOST=rabbitmq
107+ - BROKER_VALIDATE=false
108+ - OPENID_CONFIGURATION_URL=http://mockauth:8000/openid-configuration
109+ - USERINFO_ENDPOINT_URL=http://mockauth:8000/userinfo
110+ - CRYPT4GH_PRIVATE_KEY_PATH=test/crypt4gh.sec.pem
111+ - CRYPT4GH_PRIVATE_KEY_PASSWORD_PATH=test/crypt4gh.pass
112+ - OUTBOX_TYPE=POSIX
113+ - OUTBOX_LOCATION=/outbox/%s/files/
114+ - SSL_ENABLED=false
115+ - ROOT_CERT_PATH=/certs/ca.crt
116+ - CERT_PATH=/certs/client.crt
117+ - CERT_KEY=/certs/client.der
118+ - BROKER_USERNAME=guest
119+
120+ volumes :
121+ - client_certs:/certs
122+ - ../../sda-doa/test/body.enc:/test/body.enc
123+ - test_file:/outbox
124+ - encryption_files:/test
125+
126+ integration_test :
127+ container_name : integration_test
128+ image : maven:3.9.9-eclipse-temurin-21
129+ profiles : [test]
130+ volumes :
131+ - ../../sda-doa/src:/sda-doa/src
132+ - ../../sda-doa/pom.xml:/sda-doa/pom.xml
133+ - ../../sda-doa/settings.xml:/root/.m2/settings.xml
134+ - test_file:/sda-doa/outbox
135+ - ./tests:/tests
136+ - encryption_files:/test
137+ - client_certs:/certs
138+
139+ depends_on :
140+ - doa
141+ - mockauth
142+ environment :
143+ - OUTBOX_TYPE=POSIX
144+ - DOA_URL=http://doa:8080
145+ - MOCKAUTH_URL=http://mockauth:8000
146+ - MINIO_HOST=outbox
147+
148+ command :
149+ - " /bin/sh"
150+ - " /tests/run_scripts.sh"
151+ - " /tests/doa"
152+
153+ volumes :
154+ certs :
155+ client_certs :
156+ rabbitmq_data :
157+ test_file :
158+ encryption_files:
0 commit comments