@@ -33,12 +33,20 @@ services:
3333 DB_MYSQL_NAME : ' npm'
3434 # DB_SQLITE_FILE: "/data/database.sqlite"
3535 # 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'
3639 volumes :
3740 - npm_data:/data
3841 - le_data:/etc/letsencrypt
42+ - ' ./dev/resolv.conf:/etc/resolv.conf:ro'
3943 - ../backend:/app
4044 - ../frontend:/app/frontend
4145 - ../global:/app/global
46+ healthcheck :
47+ test : ["CMD", "/usr/bin/check-health"]
48+ interval : 10s
49+ timeout : 3s
4250 depends_on :
4351 - db
4452 working_dir : /app
@@ -58,6 +66,23 @@ services:
5866 volumes :
5967 - db_data:/var/lib/mysql
6068
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+
6186 swagger :
6287 image : swaggerapi/swagger-ui:latest
6388 container_name : npm_swagger
@@ -74,19 +99,80 @@ services:
7499 container_name : npm_squid
75100 volumes :
76101 - ' ./dev/squid.conf:/etc/squid/squid.conf:ro'
102+ - ' ./dev/resolv.conf:/etc/resolv.conf:ro'
77103 - ' /etc/localtime:/etc/localtime:ro'
78104 networks :
79105 - nginx_proxy_manager
80106 ports :
81107 - 8128:3128
82108
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+
83167volumes :
84168 npm_data :
85169 name : npm_core_data
86170 le_data :
87171 name : npm_le_data
88172 db_data :
89173 name : npm_db_data
174+ pdns_mysql :
175+ name : npm_pdns_mysql
90176
91177networks :
92178 nginx_proxy_manager :
0 commit comments