volumes: nginx_conf: services: web1: image: web expose: - "81" environment: WEB_PORTS: "81" VIRTUAL_HOST: "*.nginx-proxy.test" web2: image: web expose: - "82" environment: WEB_PORTS: "82" VIRTUAL_HOST: "test.nginx-proxy.*" web3: image: web expose: - "83" environment: WEB_PORTS: "83" VIRTUAL_HOST: ~^web3\..*\.nginx-proxy\.regexp web4: image: web expose: - "84" environment: WEB_PORTS: "84" VIRTUAL_HOST: ~^web4\..*\.nginx-proxy\.regexp$$ # we need to double the `$` because of docker compose variable interpolation sut: profiles: - singleContainer image: nginxproxy/nginx-proxy:test volumes: - &dockerSocket /var/run/docker.sock:/tmp/docker.sock:ro sut-dockergen: profiles: - separateContainers image: nginxproxy/nginx-proxy:test-dockergen volumes: - &confVolume nginx_conf:/etc/nginx/conf.d - *dockerSocket sut-nginx: profiles: - separateContainers container_name: nginx-proxy image: nginx:alpine volumes: - *confVolume labels: - "com.github.nginx-proxy.nginx-proxy.nginx"