# WARNING: This is a CI docker-compose file used for building # and testing of the entire app, it should not be used for production. # This is a base compose file, it should be extended with a # docker-compose.ci.*.yml file services: fullstack: image: "${IMAGE}:${BRANCH_LOWER}-ci-${BUILD_NUMBER}" environment: TZ: "${TZ:-Australia/Brisbane}" DEBUG: "true" CI: "true" FORCE_COLOR: 1 # Required for DNS Certificate provisioning in CI LE_SERVER: "https://ca.internal/acme/acme/directory" REQUESTS_CA_BUNDLE: "/etc/ssl/certs/NginxProxyManager.crt" volumes: - "npm_data_ci:/data" - "npm_le_ci:/etc/letsencrypt" - "./dev/letsencrypt.ini:/etc/letsencrypt.ini:ro" - "./dev/resolv.conf:/etc/resolv.conf:ro" - "/etc/localtime:/etc/localtime:ro" healthcheck: test: ["CMD", "/usr/bin/check-health"] interval: 10s timeout: 3s expose: - "80-81/tcp" - "443/tcp" - "1500-1503/tcp" networks: fulltest: aliases: - website1.example.com - website2.example.com - website3.example.com stepca: image: jc21/testca volumes: - "./dev/resolv.conf:/etc/resolv.conf:ro" - "/etc/localtime:/etc/localtime:ro" networks: fulltest: aliases: - ca.internal pdns: image: pschiffe/pdns-mysql:4.8 volumes: - "/etc/localtime:/etc/localtime:ro" environment: PDNS_master: "yes" PDNS_api: "yes" PDNS_api_key: "npm" PDNS_webserver: "yes" PDNS_webserver_address: "0.0.0.0" PDNS_webserver_password: "npm" PDNS_webserver-allow-from: "127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8" PDNS_version_string: "anonymous" PDNS_default_ttl: 1500 PDNS_allow_axfr_ips: "127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8" PDNS_gmysql_host: pdns-db PDNS_gmysql_port: 3306 PDNS_gmysql_user: pdns PDNS_gmysql_password: pdns PDNS_gmysql_dbname: pdns depends_on: - pdns-db networks: fulltest: aliases: - ns1.pdns - ns2.pdns pdns-db: image: mariadb environment: MYSQL_ROOT_PASSWORD: "pdns" MYSQL_DATABASE: "pdns" MYSQL_USER: "pdns" MYSQL_PASSWORD: "pdns" volumes: - "pdns_mysql_vol:/var/lib/mysql" - "/etc/localtime:/etc/localtime:ro" - "./dev/pdns-db.sql:/docker-entrypoint-initdb.d/01_init.sql:ro" networks: - fulltest dnsrouter: image: jc21/dnsrouter volumes: - ./dev/dnsrouter-config.json.tmp:/dnsrouter-config.json:ro networks: - fulltest cypress: image: "${IMAGE}-cypress:ci-${BUILD_NUMBER}" build: context: ../ dockerfile: test/cypress/Dockerfile environment: HTTP_PROXY: "squid:3128" HTTPS_PROXY: "squid:3128" volumes: - "cypress_logs:/test/results" - "./dev/resolv.conf:/etc/resolv.conf:ro" - "/etc/localtime:/etc/localtime:ro" command: cypress run --browser chrome --config-file=cypress/config/ci.js networks: - fulltest squid: image: ubuntu/squid volumes: - "./dev/squid.conf:/etc/squid/squid.conf:ro" - "./dev/resolv.conf:/etc/resolv.conf:ro" - "/etc/localtime:/etc/localtime:ro" networks: - fulltest volumes: cypress_logs: npm_data_ci: npm_le_ci: pdns_mysql_vol: networks: fulltest: name: "npm-${BRANCH_LOWER}-ci-${BUILD_NUMBER}"