| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- # 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/tcp"
- - "81/tcp"
- - "443/tcp"
- - "1500/tcp"
- - "1501/tcp"
- - "1502/tcp"
- - "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}"
|