@@ -33,12 +33,20 @@ services:
33
33
DB_MYSQL_NAME : ' npm'
34
34
# DB_SQLITE_FILE: "/data/database.sqlite"
35
35
# DISABLE_IPV6: "true"
36
+ # Required for DNS Certificate provisioning testing:
37
+ LE_SERVER : ' https://ca.internal/acme/acme/directory'
38
+ REQUESTS_CA_BUNDLE : ' /etc/ssl/certs/NginxProxyManager.crt'
36
39
volumes :
37
40
- npm_data:/data
38
41
- le_data:/etc/letsencrypt
42
+ - ' ./dev/resolv.conf:/etc/resolv.conf:ro'
39
43
- ../backend:/app
40
44
- ../frontend:/app/frontend
41
45
- ../global:/app/global
46
+ healthcheck :
47
+ test : ["CMD", "/usr/bin/check-health"]
48
+ interval : 10s
49
+ timeout : 3s
42
50
depends_on :
43
51
- db
44
52
working_dir : /app
@@ -58,6 +66,23 @@ services:
58
66
volumes :
59
67
- db_data:/var/lib/mysql
60
68
69
+ stepca :
70
+ image : jc21/testca
71
+ volumes :
72
+ - ' ./dev/resolv.conf:/etc/resolv.conf:ro'
73
+ - ' /etc/localtime:/etc/localtime:ro'
74
+ networks :
75
+ nginx_proxy_manager :
76
+ aliases :
77
+ - ca.internal
78
+
79
+ dnsrouter :
80
+ image : jc21/dnsrouter
81
+ volumes :
82
+ - ./dev/dnsrouter-config.json.tmp:/dnsrouter-config.json:ro
83
+ networks :
84
+ - nginx_proxy_manager
85
+
61
86
swagger :
62
87
image : swaggerapi/swagger-ui:latest
63
88
container_name : npm_swagger
@@ -74,19 +99,80 @@ services:
74
99
container_name : npm_squid
75
100
volumes :
76
101
- ' ./dev/squid.conf:/etc/squid/squid.conf:ro'
102
+ - ' ./dev/resolv.conf:/etc/resolv.conf:ro'
77
103
- ' /etc/localtime:/etc/localtime:ro'
78
104
networks :
79
105
- nginx_proxy_manager
80
106
ports :
81
107
- 8128:3128
82
108
109
+ pdns :
110
+ image : pschiffe/pdns-mysql
111
+ volumes :
112
+ - ' /etc/localtime:/etc/localtime:ro'
113
+ environment :
114
+ PDNS_master : ' yes'
115
+ PDNS_api : ' yes'
116
+ PDNS_api_key : ' npm'
117
+ PDNS_webserver : ' yes'
118
+ PDNS_webserver_address : ' 0.0.0.0'
119
+ PDNS_webserver_password : ' npm'
120
+ PDNS_webserver-allow-from : ' 127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8'
121
+ PDNS_version_string : ' anonymous'
122
+ PDNS_default_ttl : 1500
123
+ PDNS_allow_axfr_ips : ' 127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8'
124
+ PDNS_gmysql_host : pdns-db
125
+ PDNS_gmysql_port : 3306
126
+ PDNS_gmysql_user : pdns
127
+ PDNS_gmysql_password : pdns
128
+ PDNS_gmysql_dbname : pdns
129
+ depends_on :
130
+ - pdns-db
131
+ networks :
132
+ nginx_proxy_manager :
133
+ aliases :
134
+ - ns1.pdns
135
+ - ns2.pdns
136
+
137
+ pdns-db :
138
+ image : mariadb
139
+ environment :
140
+ MYSQL_ROOT_PASSWORD : ' pdns'
141
+ MYSQL_DATABASE : ' pdns'
142
+ MYSQL_USER : ' pdns'
143
+ MYSQL_PASSWORD : ' pdns'
144
+ volumes :
145
+ - ' pdns_mysql:/var/lib/mysql'
146
+ - ' /etc/localtime:/etc/localtime:ro'
147
+ - ' ./dev/pdns-db.sql:/docker-entrypoint-initdb.d/01_init.sql:ro'
148
+ networks :
149
+ - nginx_proxy_manager
150
+
151
+ cypress :
152
+ image : " npm_dev_cypress"
153
+ build :
154
+ context : ../
155
+ dockerfile : test/cypress/Dockerfile
156
+ environment :
157
+ HTTP_PROXY : ' squid:3128'
158
+ HTTPS_PROXY : ' squid:3128'
159
+ volumes :
160
+ - ' ../test/results:/results'
161
+ - ' ./dev/resolv.conf:/etc/resolv.conf:ro'
162
+ - ' /etc/localtime:/etc/localtime:ro'
163
+ command : cypress run --browser chrome --config-file=cypress/config/ci.js
164
+ networks :
165
+ - nginx_proxy_manager
166
+
83
167
volumes :
84
168
npm_data :
85
169
name : npm_core_data
86
170
le_data :
87
171
name : npm_le_data
88
172
db_data :
89
173
name : npm_db_data
174
+ pdns_mysql :
175
+ name : npm_pdns_mysql
90
176
91
177
networks :
92
178
nginx_proxy_manager :
0 commit comments