networks:
  net1:
  net2:
  net3a:
  net3b:


volumes:
  nginx_conf:


services:
  nginx-proxy:
    profiles:
      - singleContainer
    image: nginxproxy/nginx-proxy:test
    volumes:
      - &dockerSocket /var/run/docker.sock:/tmp/docker.sock:ro
    networks: &nginxProxyNetworks
      net1:
      net2:
      net3a:
      net3b:

  nginx-proxy-dockergen:
    profiles:
      - separateContainers
    image: nginxproxy/nginx-proxy:test-dockergen
    volumes:
      - &confVolume nginx_conf:/etc/nginx/conf.d
      - *dockerSocket
    networks: *nginxProxyNetworks

  nginx-proxy-nginx:
    profiles:
      - separateContainers
    container_name: nginx-proxy
    image: nginx:alpine
    volumes:
      - *confVolume
    labels:
      - "com.github.nginx-proxy.nginx-proxy.nginx"
    networks: *nginxProxyNetworks

  web1:
    image: web
    expose:
      - "81"
    environment:
      WEB_PORTS: 81
      VIRTUAL_HOST: web1.nginx-proxy.example
    networks:
      - net1

  web2:
    image: web
    expose:
      - "82"
    environment:
      WEB_PORTS: 82
      VIRTUAL_HOST: web2.nginx-proxy.example
    networks:
      - net2

  web3:
    image: web
    expose:
      - "83"
    environment:
      WEB_PORTS: 83
      VIRTUAL_HOST: web3.nginx-proxy.test
    networks:
      - net3a
      - net3b