version: '3.7' services: # Nginx reverse proxy container # Reference: # https://github.com/jwilder/nginx-proxy nginx-proxy: image: jwilder/nginx-proxy container_name: nginx-proxy restart: always environment: - DEFAULT_HOST=ecentrics.net - ENABLE_IPV6=true labels: com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true" logging: options: max-size: '4m' max-file: '10' networks: - janus_network - concordia_staging_network - concordia_production_network ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - ./volumes/nginx/conf:/etc/nginx/conf.d - ./volumes/nginx/vhost:/etc/nginx/vhost.d - ./volumes/nginx/html:/usr/share/nginx/html - ./volumes/nginx/dhparam:/etc/nginx/dhparam - ./volumes/nginx/certs:/etc/nginx/certs:ro - ./nginx-reverse-proxy-confs/client-max-body-size.conf:/etc/nginx/conf.d/client-max-body-size.conf:ro - ./nginx-reverse-proxy-confs/www.ecentrics.net:/etc/nginx/vhost.d/www.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.jenkins.ecentrics.net:/etc/nginx/vhost.d/www.jenkins.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.concordia.ecentrics.net:/etc/nginx/vhost.d/www.concordia.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.staging.concordia.ecentrics.net:/etc/nginx/vhost.d/www.staging.concordia.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.guide.concordia.ecentrics.net:/etc/nginx/vhost.d/www.guide.concordia.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.staging.guide.concordia.ecentrics.net:/etc/nginx/vhost.d/www.staging.guide.concordia.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.ganache.ecentrics.net:/etc/nginx/vhost.d/www.ganache.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.staging.ganache.ecentrics.net:/etc/nginx/vhost.d/www.staging.ganache.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.rendezvous.ecentrics.net:/etc/nginx/vhost.d/www.rendezvous.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.contracts.concordia.ecentrics.net:/etc/nginx/vhost.d/www.contracts.concordia.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.staging.contracts.concordia.ecentrics.net:/etc/nginx/vhost.d/www.staging.contracts.concordia.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.pinner.concordia.ecentrics.net:/etc/nginx/vhost.d/www.pinner.concordia.ecentrics.net_location:ro - ./nginx-reverse-proxy-confs/www.staging.pinner.concordia.ecentrics.net:/etc/nginx/vhost.d/www.staging.pinner.concordia.ecentrics.net_location:ro # Letsencrypt automated creation, renewal and use of Let's Encrypt certificates # Reference: # https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion letsencrypt: image: jrcs/letsencrypt-nginx-proxy-companion container_name: nginx-proxy-le restart: always depends_on: - nginx-proxy logging: options: max-size: '4m' max-file: '10' networks: - janus_network - concordia_staging_network - concordia_production_network volumes: - ./volumes/nginx/conf:/etc/nginx/conf.d - ./volumes/nginx/vhost:/etc/nginx/vhost.d - ./volumes/nginx/html:/usr/share/nginx/html - ./volumes/nginx/dhparam:/etc/nginx/dhparam - ./volumes/nginx/certs:/etc/nginx/certs:rw - /var/run/docker.sock:/var/run/docker.sock:ro # Jenkins automation server, image bundled with Blue Ocean # Reference: # https://jenkins.io/doc/book/blueocean/ jenkins: build: dockerfile: ./Dockerfile context: ./jenkins image: ecentrics/janus container_name: janus restart: always user: root env_file: - ./env/jenkins.env ports: - 8080:8080 secrets: - jenkins_admin_username - jenkins_admin_password - jenkins_dockerhub_username - jenkins_dockerhub_password networks: - janus_network volumes: - ./volumes/jenkins/log:/var/log/jenkins - jenkins_data:/var/jenkins_home - ./jenkins/downloads:/var/jenkins_home/downloads - /var/run/docker.sock:/var/run/docker.sock - janus_common:/mnt/janus/common # Networks in use networks: janus_network: driver: bridge concordia_staging_network: driver: bridge concordia_production_network: driver: bridge # Secrets in use secrets: jenkins_admin_username: file: ./jenkins/secrets/adminUsername jenkins_admin_password: file: ./jenkins/secrets/adminPassword jenkins_dockerhub_username: file: ./jenkins/secrets/dockerhubUsername jenkins_dockerhub_password: file: ./jenkins/secrets/dockerhubPassword volumes: jenkins_data: janus_common: