2
0
Эх сурвалжийг харах

Merge pull request #2343 from nginx-proxy/docker-compose-upgrade

test: replace python docker-compose with docker compose
Nicolas Duchon 1 жил өмнө
parent
commit
f044423e4e
77 өөрчлөгдсөн 917 нэмэгдсэн , 771 устгасан
  1. 3 3
      README.md
  2. 2 1
      docker-compose-separate-containers.yml
  3. 2 1
      docker-compose.yml
  4. 3 3
      test/README.md
  5. 8 8
      test/conftest.py
  6. 2 2
      test/pytest.sh
  7. 0 1
      test/requirements/python-requirements.txt
  8. 15 13
      test/stress_tests/test_deleted_cert/docker-compose.yml
  9. 0 1
      test/stress_tests/test_unreachable_network/docker-compose.yml
  10. 22 20
      test/test_DOCKER_HOST_unix_socket.yml
  11. 2 1
      test/test_composev2.yml
  12. 30 27
      test/test_custom/test_defaults-location.yml
  13. 2 1
      test/test_custom/test_defaults.yml
  14. 2 1
      test/test_custom/test_location-per-vhost.yml
  15. 2 1
      test/test_custom/test_per-vhost.yml
  16. 2 1
      test/test_custom/test_proxy-wide.yml
  17. 17 15
      test/test_default-host.yml
  18. 3 0
      test/test_default-root-none.yml
  19. 1 1
      test/test_dockergen/test_dockergen_v2.yml
  20. 2 1
      test/test_dockergen/test_dockergen_v3.yml
  21. 2 0
      test/test_events.py
  22. 7 4
      test/test_events.yml
  23. 3 0
      test/test_fallback.data/custom-fallback.yml
  24. 6 0
      test/test_fallback.data/nodefault.yml
  25. 3 0
      test/test_fallback.data/nohttp-on-app.yml
  26. 4 0
      test/test_fallback.data/nohttp-with-missing-cert.yml
  27. 3 0
      test/test_fallback.data/nohttp.yml
  28. 3 0
      test/test_fallback.data/nohttps-on-app.yml
  29. 3 0
      test/test_fallback.data/nohttps.yml
  30. 6 0
      test/test_fallback.data/withdefault.yml
  31. 21 19
      test/test_headers/test_http.yml
  32. 27 25
      test/test_headers/test_https.yml
  33. 2 0
      test/test_http2/test_http2_global_disabled.yml
  34. 3 1
      test/test_http3/test_http3_global_disabled.yml
  35. 2 0
      test/test_http3/test_http3_global_enabled.yml
  36. 2 0
      test/test_http3/test_http3_vhost.yml
  37. 16 13
      test/test_http_port.yml
  38. 22 20
      test/test_internal/test_internal-per-vhost.yml
  39. 26 24
      test/test_internal/test_internal-per-vpath.yml
  40. 1 2
      test/test_ipv6.yml
  41. 24 22
      test/test_keepalive.yml
  42. 2 0
      test/test_loadbalancing.yml
  43. 2 0
      test/test_location-override.yml
  44. 17 14
      test/test_log_format.yml
  45. 13 11
      test/test_multiple-hosts.yml
  46. 1 1
      test/test_multiple-networks.yml
  47. 14 12
      test/test_multiple-ports/test_VIRTUAL_PORT-single-different-from-single-port.yml
  48. 16 13
      test/test_multiple-ports/test_VIRTUAL_PORT.yml
  49. 15 12
      test/test_multiple-ports/test_default-80.yml
  50. 13 11
      test/test_multiple-ports/test_single-port-not-80.yml
  51. 1 2
      test/test_nominal.yml
  52. 2 2
      test/test_raw-ip-vhost.yml
  53. 29 26
      test/test_server-down/test_load-balancing.yml
  54. 14 11
      test/test_server-down/test_no-server-down.yml
  55. 15 12
      test/test_server-down/test_server-down.yml
  56. 4 2
      test/test_ssl/test_dhparam.py
  57. 67 65
      test/test_ssl/test_dhparam.yml
  58. 49 46
      test/test_ssl/test_hsts.yml
  59. 18 15
      test/test_ssl/test_https_port.yml
  60. 15 13
      test/test_ssl/test_nohttp.yml
  61. 14 12
      test/test_ssl/test_nohttps.yml
  62. 15 13
      test/test_ssl/test_noredirect.yml
  63. 25 23
      test/test_ssl/test_virtual_path.yml
  64. 15 12
      test/test_ssl/test_wildcard.yml
  65. 16 14
      test/test_trust-downstream-proxy/test_default.yml
  66. 18 16
      test/test_trust-downstream-proxy/test_disabled.yml
  67. 18 16
      test/test_trust-downstream-proxy/test_enabled.yml
  68. 1 1
      test/test_upstream-name/test_predictable-name.yml
  69. 1 1
      test/test_upstream-name/test_sha1-name.yml
  70. 6 0
      test/test_vhost-empty-string.yml
  71. 1 1
      test/test_vhost-in-multiple-networks.yml
  72. 44 43
      test/test_virtual-path/test_custom_conf.yml
  73. 19 16
      test/test_virtual-path/test_forwarding.yml
  74. 37 34
      test/test_virtual-path/test_location_precedence.yml
  75. 1 0
      test/test_virtual-path/test_virtual_paths.py
  76. 39 37
      test/test_virtual-path/test_virtual_paths.yml
  77. 34 32
      test/test_wildcard_host.yml

+ 3 - 3
README.md

@@ -73,7 +73,7 @@ services:
 ```
 
 ```console
-docker-compose up
+docker compose up
 curl -H "Host: whoami.example" localhost
 ```
 
@@ -259,10 +259,10 @@ nginx-proxy can also be run as two separate containers using the [nginxproxy/doc
 
 You may want to do this to prevent having the docker socket bound to a publicly exposed container service.
 
-You can demo this pattern with docker-compose:
+You can demo this pattern with docker compose:
 
 ```console
-docker-compose --file docker-compose-separate-containers.yml up
+docker compose --file docker-compose-separate-containers.yml up
 curl -H "Host: whoami.example" localhost
 ```
 

+ 2 - 1
docker-compose-separate-containers.yml

@@ -1,4 +1,5 @@
-version: '2'
+version: "2"
+
 services:
   nginx:
     image: nginx

+ 2 - 1
docker-compose.yml

@@ -1,4 +1,5 @@
-version: '2'
+version: "2"
+
 services:
   nginx-proxy:
     image: nginxproxy/nginx-proxy

+ 3 - 3
test/README.md

@@ -48,11 +48,11 @@ This test suite uses [pytest](http://doc.pytest.org/en/latest/). The [conftest.p
 
 When using the `docker_compose` fixture in a test, pytest will try to find a yml file named after your test module filename. For instance, if your test module is `test_example.py`, then the `docker_compose` fixture will try to load a `test_example.yml` [docker compose file](https://docs.docker.com/compose/compose-file/).
 
-Once the docker compose file found, the fixture will remove all containers, run `docker-compose up`, and finally your test will be executed.
+Once the docker compose file found, the fixture will remove all containers, run `docker compose up`, and finally your test will be executed.
 
-The fixture will run the _docker-compose_ command with the `-f` option to load the given compose file. So you can test your docker compose file syntax by running it yourself with:
+The fixture will run the _docker compose_ command with the `-f` option to load the given compose file. So you can test your docker compose file syntax by running it yourself with:
 
-    docker-compose -f test_example.yml up -d
+    docker compose -f test_example.yml up -d
 
 In the case you are running pytest from within a docker container, the `docker_compose` fixture will make sure the container running pytest is attached to all docker networks. That way, your test will be able to reach any of them.
 

+ 8 - 8
test/conftest.py

@@ -301,19 +301,19 @@ def get_nginx_conf_from_container(container):
 
 
 def docker_compose_up(compose_file='docker-compose.yml'):
-    logging.info(f'docker-compose -f {compose_file} up -d')
+    logging.info(f'docker compose -f {compose_file} up -d')
     try:
-        subprocess.check_output(shlex.split(f'docker-compose -f {compose_file} up -d'), stderr=subprocess.STDOUT)
+        subprocess.check_output(shlex.split(f'docker compose -f {compose_file} up -d'), stderr=subprocess.STDOUT)
     except subprocess.CalledProcessError as e:
-        pytest.fail(f"Error while runninng 'docker-compose -f {compose_file} up -d':\n{e.output}", pytrace=False)
+        pytest.fail(f"Error while runninng 'docker compose -f {compose_file} up -d':\n{e.output}", pytrace=False)
 
 
 def docker_compose_down(compose_file='docker-compose.yml'):
-    logging.info(f'docker-compose -f {compose_file} down -v')
+    logging.info(f'docker compose -f {compose_file} down -v')
     try:
-        subprocess.check_output(shlex.split(f'docker-compose -f {compose_file} down -v'), stderr=subprocess.STDOUT)
+        subprocess.check_output(shlex.split(f'docker compose -f {compose_file} down -v'), stderr=subprocess.STDOUT)
     except subprocess.CalledProcessError as e:
-        pytest.fail(f"Error while runninng 'docker-compose -f {compose_file} down -v':\n{e.output}", pytrace=False)
+        pytest.fail(f"Error while runninng 'docker compose -f {compose_file} down -v':\n{e.output}", pytrace=False)
 
 
 def wait_for_nginxproxy_to_be_ready():
@@ -333,7 +333,7 @@ def wait_for_nginxproxy_to_be_ready():
 
 @pytest.fixture
 def docker_compose_file(request):
-    """Fixture naming the docker-compose file to consider.
+    """Fixture naming the docker compose file to consider.
 
     If a YAML file exists with the same name as the test module (with the `.py` extension replaced
     with `.yml` or `.yaml`), use that.  Otherwise, use `docker-compose.yml` in the same directory
@@ -354,7 +354,7 @@ def docker_compose_file(request):
         docker_compose_file = default_file
 
     if not os.path.isfile(docker_compose_file):
-        logging.error("Could not find any docker-compose file named either '{0}.yml', '{0}.yaml' or 'docker-compose.yml'".format(request.module.__name__))
+        logging.error("Could not find any docker compose file named either '{0}.yml', '{0}.yaml' or 'docker-compose.yml'".format(request.module.__name__))
 
     logging.debug(f"using docker compose file {docker_compose_file}")
     return docker_compose_file

+ 2 - 2
test/pytest.sh

@@ -19,8 +19,8 @@ docker build --pull -t nginx-proxy-tester \
   "${TESTDIR}/requirements" \
   || exit 1
 
-# run the nginx-proxy-tester container setting the correct value for the working dir in order for
-# docker-compose to work properly when run from within that container.
+# run the nginx-proxy-tester container setting the correct value for the working dir 
+# in order for docker compose to work properly when run from within that container.
 exec docker run --rm -it --name "nginx-proxy-pytest" \
   --volume "/var/run/docker.sock:/var/run/docker.sock" \
   --volume "${DIR}:${DIR}" \

+ 0 - 1
test/requirements/python-requirements.txt

@@ -1,5 +1,4 @@
 backoff==2.2.1
-docker-compose==1.29.2
 docker==6.1.3
 pytest==7.4.3
 requests==2.31.0

+ 15 - 13
test/stress_tests/test_deleted_cert/docker-compose.yml

@@ -1,15 +1,17 @@
-web:
-  image: web
-  expose:
-  - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: web.nginx-proxy
+version: "2"
 
+services:
+  web:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: web.nginx-proxy
 
-reverseproxy:
-  image: nginxproxy/nginx-proxy:test
-  container_name: reverseproxy
-  volumes:
-  - /var/run/docker.sock:/tmp/docker.sock:ro
-  - ./tmp_certs:/etc/nginx/certs:ro
+  reverseproxy:
+    image: nginxproxy/nginx-proxy:test
+    container_name: reverseproxy
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./tmp_certs:/etc/nginx/certs:ro

+ 0 - 1
test/stress_tests/test_unreachable_network/docker-compose.yml

@@ -32,4 +32,3 @@ services:
     environment:
       WEB_PORTS: 82
       VIRTUAL_HOST: webB.nginx-proxy
-

+ 22 - 20
test/test_DOCKER_HOST_unix_socket.yml

@@ -1,23 +1,25 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: web1.nginx-proxy.tld
+version: "2"
 
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: 82
-    VIRTUAL_HOST: web2.nginx-proxy.tld
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: web1.nginx-proxy.tld
 
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: 82
+      VIRTUAL_HOST: web2.nginx-proxy.tld
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/f00.sock:ro
-  environment:
-    DOCKER_HOST: unix:///f00.sock
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/f00.sock:ro
+    environment:
+      DOCKER_HOST: unix:///f00.sock

+ 2 - 1
test/test_composev2.yml

@@ -1,4 +1,5 @@
-version: '2'
+version: "2"
+
 services:
   nginx-proxy:
     image: nginxproxy/nginx-proxy:test

+ 30 - 27
test/test_custom/test_defaults-location.yml

@@ -1,30 +1,33 @@
-nginx-proxy:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./my_custom_proxy_settings.conf:/etc/nginx/vhost.d/default_location:ro
-    - ./my_custom_proxy_settings_bar.conf:/etc/nginx/vhost.d/web3.nginx-proxy.example_location:ro
+version: "2"
 
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: web1.nginx-proxy.example
+services:
+  nginx-proxy:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./my_custom_proxy_settings.conf:/etc/nginx/vhost.d/default_location:ro
+      - ./my_custom_proxy_settings_bar.conf:/etc/nginx/vhost.d/web3.nginx-proxy.example_location:ro
 
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: 82
-    VIRTUAL_HOST: web2.nginx-proxy.example
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: web1.nginx-proxy.example
 
-web3:
-  image: web
-  expose:
-    - "83"
-  environment:
-    WEB_PORTS: 83
-    VIRTUAL_HOST: web3.nginx-proxy.example
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: 82
+      VIRTUAL_HOST: web2.nginx-proxy.example
+
+  web3:
+    image: web
+    expose:
+      - "83"
+    environment:
+      WEB_PORTS: 83
+      VIRTUAL_HOST: web3.nginx-proxy.example

+ 2 - 1
test/test_custom/test_defaults.yml

@@ -1,4 +1,5 @@
-version: '2'
+version: "2"
+
 services:
   nginx-proxy:
     image: nginxproxy/nginx-proxy:test

+ 2 - 1
test/test_custom/test_location-per-vhost.yml

@@ -1,4 +1,5 @@
-version: '2'
+version: "2"
+
 services:
   nginx-proxy:
     image: nginxproxy/nginx-proxy:test

+ 2 - 1
test/test_custom/test_per-vhost.yml

@@ -1,4 +1,5 @@
-version: '2'
+version: "2"
+
 services:
   nginx-proxy:
     image: nginxproxy/nginx-proxy:test

+ 2 - 1
test/test_custom/test_proxy-wide.yml

@@ -1,4 +1,5 @@
-version: '2'
+version: "2"
+
 services:
   nginx-proxy:
     image: nginxproxy/nginx-proxy:test

+ 17 - 15
test/test_default-host.yml

@@ -1,17 +1,19 @@
-# GIVEN a webserver with VIRTUAL_HOST set to web1.tld
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: web1.tld
+version: "2"
 
+services:
+  # GIVEN a webserver with VIRTUAL_HOST set to web1.tld
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: web1.tld
 
-# WHEN nginx-proxy runs with DEFAULT_HOST set to web1.tld
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-  environment:
-    DEFAULT_HOST: web1.tld
+  # WHEN nginx-proxy runs with DEFAULT_HOST set to web1.tld
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+    environment:
+      DEFAULT_HOST: web1.tld

+ 3 - 0
test/test_default-root-none.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test
@@ -5,6 +7,7 @@ services:
       - /var/run/docker.sock:/tmp/docker.sock:ro
     environment:
       DEFAULT_ROOT: none
+
   web:
     image: web
     expose:

+ 1 - 1
test/test_dockergen/test_dockergen_v2.yml

@@ -1,4 +1,4 @@
-version: '2'
+version: "2"
 
 services:
   nginx:

+ 2 - 1
test/test_dockergen/test_dockergen_v3.yml

@@ -1,4 +1,5 @@
-version: '3'
+version: "3"
+
 services:
   nginx:
     image: nginx

+ 2 - 0
test/test_events.py

@@ -22,6 +22,7 @@ def web1(docker_compose):
         },
         ports={"81/tcp": None}
     )
+    docker_compose.networks.get("test_default").connect(container)
     sleep(2)  # give it some time to initialize and for docker-gen to detect it
     yield container
     try:
@@ -46,6 +47,7 @@ def web2(docker_compose):
         },
         ports={"82/tcp": None}
     )
+    docker_compose.networks.get("test_default").connect(container)
     sleep(2)  # give it some time to initialize and for docker-gen to detect it
     yield container
     try:

+ 7 - 4
test/test_events.yml

@@ -1,4 +1,7 @@
-nginxproxy:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+version: "2"
+
+services:
+  nginxproxy:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 3 - 0
test/test_fallback.data/custom-fallback.yml

@@ -1,9 +1,12 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test
     volumes:
       - /var/run/docker.sock:/tmp/docker.sock:ro
       - ./custom-fallback.conf:/etc/nginx/conf.d/zzz-custom-fallback.conf:ro
+
   http-only:
     image: web
     expose:

+ 6 - 0
test/test_fallback.data/nodefault.yml

@@ -1,9 +1,12 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test
     volumes:
       - /var/run/docker.sock:/tmp/docker.sock:ro
       - ./nodefault.certs:/etc/nginx/certs:ro
+
   https-and-http:
     image: web
     expose:
@@ -11,6 +14,7 @@ services:
     environment:
       WEB_PORTS: "81"
       VIRTUAL_HOST: https-and-http.nginx-proxy.test
+
   https-only:
     image: web
     expose:
@@ -19,6 +23,7 @@ services:
       WEB_PORTS: "82"
       VIRTUAL_HOST: https-only.nginx-proxy.test
       HTTPS_METHOD: nohttp
+
   http-only:
     image: web
     expose:
@@ -27,6 +32,7 @@ services:
       WEB_PORTS: "83"
       VIRTUAL_HOST: http-only.nginx-proxy.test
       HTTPS_METHOD: nohttps
+
   missing-cert:
     image: web
     expose:

+ 3 - 0
test/test_fallback.data/nohttp-on-app.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test
@@ -6,6 +8,7 @@ services:
       - ./withdefault.certs:/etc/nginx/certs:ro
     environment:
       HTTPS_METHOD: redirect
+
   https-only:
     image: web
     expose:

+ 4 - 0
test/test_fallback.data/nohttp-with-missing-cert.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test
@@ -6,6 +8,7 @@ services:
       - ./withdefault.certs:/etc/nginx/certs:ro
     environment:
       HTTPS_METHOD: nohttp
+
   https-only:
     image: web
     expose:
@@ -13,6 +16,7 @@ services:
     environment:
       WEB_PORTS: "82"
       VIRTUAL_HOST: https-only.nginx-proxy.test
+
   missing-cert:
     image: web
     expose:

+ 3 - 0
test/test_fallback.data/nohttp.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test
@@ -6,6 +8,7 @@ services:
       - ./withdefault.certs:/etc/nginx/certs:ro
     environment:
       HTTPS_METHOD: nohttp
+
   https-only:
     image: web
     expose:

+ 3 - 0
test/test_fallback.data/nohttps-on-app.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test
@@ -5,6 +7,7 @@ services:
       - /var/run/docker.sock:/tmp/docker.sock:ro
     environment:
       HTTPS_METHOD: redirect
+
   http-only:
     image: web
     expose:

+ 3 - 0
test/test_fallback.data/nohttps.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test
@@ -5,6 +7,7 @@ services:
       - /var/run/docker.sock:/tmp/docker.sock:ro
     environment:
       HTTPS_METHOD: nohttps
+
   http-only:
     image: web
     expose:

+ 6 - 0
test/test_fallback.data/withdefault.yml

@@ -1,9 +1,12 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test
     volumes:
       - /var/run/docker.sock:/tmp/docker.sock:ro
       - ./withdefault.certs:/etc/nginx/certs:ro
+
   https-and-http:
     image: web
     expose:
@@ -11,6 +14,7 @@ services:
     environment:
       WEB_PORTS: "81"
       VIRTUAL_HOST: https-and-http.nginx-proxy.test
+
   https-only:
     image: web
     expose:
@@ -19,6 +23,7 @@ services:
       WEB_PORTS: "82"
       VIRTUAL_HOST: https-only.nginx-proxy.test
       HTTPS_METHOD: nohttp
+
   http-only:
     image: web
     expose:
@@ -27,6 +32,7 @@ services:
       WEB_PORTS: "83"
       VIRTUAL_HOST: http-only.nginx-proxy.test
       HTTPS_METHOD: nohttps
+
   missing-cert:
     image: web
     expose:

+ 21 - 19
test/test_headers/test_http.yml

@@ -1,22 +1,24 @@
-web:
-  image: web
-  expose:
-    - "80"
-  environment:
-    WEB_PORTS: 80
-    VIRTUAL_HOST: web.nginx-proxy.tld
+version: "2"
 
-web-server-tokens-off:
-  image: web
-  expose:
-    - "80"
-  environment:
-    WEB_PORTS: 80
-    VIRTUAL_HOST: web-server-tokens-off.nginx-proxy.tld
-    SERVER_TOKENS: "off"
+services:
+  web:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: web.nginx-proxy.tld
 
+  web-server-tokens-off:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: web-server-tokens-off.nginx-proxy.tld
+      SERVER_TOKENS: "off"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 27 - 25
test/test_headers/test_https.yml

@@ -1,28 +1,30 @@
-web:
-  image: web
-  expose:
-    - "80"
-  environment:
-    WEB_PORTS: 80
-    VIRTUAL_HOST: web.nginx-proxy.tld
+version: "2"
 
-web-server-tokens-off:
-  image: web
-  expose:
-    - "80"
-  environment:
-    WEB_PORTS: 80
-    VIRTUAL_HOST: web-server-tokens-off.nginx-proxy.tld
-    SERVER_TOKENS: "off"
+services:
+  web:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: web.nginx-proxy.tld
 
+  web-server-tokens-off:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: web-server-tokens-off.nginx-proxy.tld
+      SERVER_TOKENS: "off"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs/web.nginx-proxy.tld.crt:/etc/nginx/certs/default.crt:ro
-    - ./certs/web.nginx-proxy.tld.key:/etc/nginx/certs/default.key:ro
-    - ./certs/web.nginx-proxy.tld.crt:/etc/nginx/certs/web.nginx-proxy.tld.crt:ro
-    - ./certs/web.nginx-proxy.tld.key:/etc/nginx/certs/web.nginx-proxy.tld.key:ro
-    - ./certs/web-server-tokens-off.nginx-proxy.tld.crt:/etc/nginx/certs/web-server-tokens-off.nginx-proxy.tld.crt:ro
-    - ./certs/web-server-tokens-off.nginx-proxy.tld.key:/etc/nginx/certs/web-server-tokens-off.nginx-proxy.tld.key:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs/web.nginx-proxy.tld.crt:/etc/nginx/certs/default.crt:ro
+      - ./certs/web.nginx-proxy.tld.key:/etc/nginx/certs/default.key:ro
+      - ./certs/web.nginx-proxy.tld.crt:/etc/nginx/certs/web.nginx-proxy.tld.crt:ro
+      - ./certs/web.nginx-proxy.tld.key:/etc/nginx/certs/web.nginx-proxy.tld.key:ro
+      - ./certs/web-server-tokens-off.nginx-proxy.tld.crt:/etc/nginx/certs/web-server-tokens-off.nginx-proxy.tld.crt:ro
+      - ./certs/web-server-tokens-off.nginx-proxy.tld.key:/etc/nginx/certs/web-server-tokens-off.nginx-proxy.tld.key:ro

+ 2 - 0
test/test_http2/test_http2_global_disabled.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   http2-global-disabled:
     image: web

+ 3 - 1
test/test_http3/test_http3_global_disabled.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   http3-global-disabled:
     image: web
@@ -12,4 +14,4 @@ services:
     volumes:
       - /var/run/docker.sock:/tmp/docker.sock:ro
     #environment:
-      #ENABLE_HTTP3: "false"    #Disabled by default
+    #ENABLE_HTTP3: "false"    #Disabled by default

+ 2 - 0
test/test_http3/test_http3_global_enabled.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   http3-global-enabled:
     image: web

+ 2 - 0
test/test_http3/test_http3_vhost.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   http3-vhost-enabled:
     image: web

+ 16 - 13
test/test_http_port.yml

@@ -1,14 +1,17 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "*.nginx-proxy.tld"
+version: "2"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-  environment:
-    HTTP_PORT: 8080
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "*.nginx-proxy.tld"
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+    environment:
+      HTTP_PORT: 8080

+ 22 - 20
test/test_internal/test_internal-per-vhost.yml

@@ -1,23 +1,25 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: web1.nginx-proxy.example
-    NETWORK_ACCESS: internal
+version: "2"
 
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: 82
-    VIRTUAL_HOST: web2.nginx-proxy.example
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: web1.nginx-proxy.example
+      NETWORK_ACCESS: internal
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./network_internal.conf:/etc/nginx/network_internal.conf:ro
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: 82
+      VIRTUAL_HOST: web2.nginx-proxy.example
 
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./network_internal.conf:/etc/nginx/network_internal.conf:ro

+ 26 - 24
test/test_internal/test_internal-per-vpath.yml

@@ -1,27 +1,29 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: nginx-proxy.example
-    VIRTUAL_PATH: /web1/
-    VIRTUAL_DEST: /
-    NETWORK_ACCESS: internal
+version: "2"
 
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: 82
-    VIRTUAL_HOST: nginx-proxy.example
-    VIRTUAL_PATH: /web2/
-    VIRTUAL_DEST: /
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: nginx-proxy.example
+      VIRTUAL_PATH: /web1/
+      VIRTUAL_DEST: /
+      NETWORK_ACCESS: internal
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./network_internal.conf:/etc/nginx/network_internal.conf:ro
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: 82
+      VIRTUAL_HOST: nginx-proxy.example
+      VIRTUAL_PATH: /web2/
+      VIRTUAL_DEST: /
 
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./network_internal.conf:/etc/nginx/network_internal.conf:ro

+ 1 - 2
test/test_ipv6.yml

@@ -1,4 +1,4 @@
-version: '2'
+version: "2"
 
 networks:
   net1:
@@ -28,7 +28,6 @@ services:
     networks:
       - net1
 
-
   sut:
     image: nginxproxy/nginx-proxy:test
     volumes:

+ 24 - 22
test/test_keepalive.yml

@@ -1,25 +1,27 @@
-keepalive-disabled:
-  image: web
-  expose:
-    - "80"
-  environment:
-    WEB_PORTS: 80
-    VIRTUAL_HOST: keepalive-disabled.nginx-proxy.test
+version: "2"
 
-keepalive-enabled:
-  image: web
-  expose:
-    - "80"
-  environment:
-    WEB_PORTS: 80
-    VIRTUAL_HOST: keepalive-enabled.nginx-proxy.test
-  labels:
-    com.github.nginx-proxy.nginx-proxy.keepalive: "64"
+services:
+  keepalive-disabled:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: keepalive-disabled.nginx-proxy.test
 
+  keepalive-enabled:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: keepalive-enabled.nginx-proxy.test
+    labels:
+      com.github.nginx-proxy.nginx-proxy.keepalive: "64"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-  environment:
-    HTTPS_METHOD: nohttps
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+    environment:
+      HTTPS_METHOD: nohttps

+ 2 - 0
test/test_loadbalancing.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   loadbalance-hash:
     image: web

+ 2 - 0
test/test_location-override.yml

@@ -1,3 +1,5 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test

+ 17 - 14
test/test_log_format.yml

@@ -1,15 +1,18 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: nginx-proxy.test
+version: "2"
 
-sut:
-  container_name: sut
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-  environment:
-    LOG_FORMAT: "$$remote_addr - $$remote_user [$$time_local] \"$$request\" $$status $$body_bytes_sent \"$$http_referer\" \"$$http_user_agent\" request_time=$$request_time $$upstream_response_time"
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: nginx-proxy.test
+
+  sut:
+    container_name: sut
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+    environment:
+      LOG_FORMAT: '$$remote_addr - $$remote_user [$$time_local] "$$request" $$status $$body_bytes_sent "$$http_referer" "$$http_user_agent" request_time=$$request_time $$upstream_response_time'

+ 13 - 11
test/test_multiple-hosts.yml

@@ -1,13 +1,15 @@
-web:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: webA.nginx-proxy.tld,webB.nginx-proxy.tld
+version: "2"
 
+services:
+  web:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: webA.nginx-proxy.tld,webB.nginx-proxy.tld
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 1 - 1
test/test_multiple-networks.yml

@@ -1,4 +1,4 @@
-version: '2'
+version: "2"
 
 networks:
   net1: {}

+ 14 - 12
test/test_multiple-ports/test_VIRTUAL_PORT-single-different-from-single-port.yml

@@ -1,14 +1,16 @@
-web:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "web.nginx-proxy.tld"
-    VIRTUAL_PORT: "90"
+version: "2"
 
+services:
+  web:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "web.nginx-proxy.tld"
+      VIRTUAL_PORT: "90"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 16 - 13
test/test_multiple-ports/test_VIRTUAL_PORT.yml

@@ -1,14 +1,17 @@
-web:
-  image: web
-  expose:
-    - "80"
-    - "90"
-  environment:
-    WEB_PORTS: "80 90"
-    VIRTUAL_HOST: "web.nginx-proxy.tld"
-    VIRTUAL_PORT: 90
+version: "2"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+services:
+  web:
+    image: web
+    expose:
+      - "80"
+      - "90"
+    environment:
+      WEB_PORTS: "80 90"
+      VIRTUAL_HOST: "web.nginx-proxy.tld"
+      VIRTUAL_PORT: 90
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 15 - 12
test/test_multiple-ports/test_default-80.yml

@@ -1,13 +1,16 @@
-web:
-  image: web
-  expose:
-    - "80"
-    - "81"
-  environment:
-    WEB_PORTS: "80 81"
-    VIRTUAL_HOST: "web.nginx-proxy.tld"
+version: "2"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+services:
+  web:
+    image: web
+    expose:
+      - "80"
+      - "81"
+    environment:
+      WEB_PORTS: "80 81"
+      VIRTUAL_HOST: "web.nginx-proxy.tld"
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 13 - 11
test/test_multiple-ports/test_single-port-not-80.yml

@@ -1,13 +1,15 @@
-web:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "web.nginx-proxy.tld"
+version: "2"
 
+services:
+  web:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "web.nginx-proxy.tld"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 1 - 2
test/test_nominal.yml

@@ -1,4 +1,4 @@
-version: '2'
+version: "2"
 
 networks:
   net1:
@@ -28,7 +28,6 @@ services:
     networks:
       - net1
 
-
   sut:
     image: nginxproxy/nginx-proxy:test
     volumes:

+ 2 - 2
test/test_raw-ip-vhost.yml

@@ -1,4 +1,4 @@
-version: '2'
+version: "2"
 
 networks:
   net1:
@@ -6,7 +6,7 @@ networks:
     ipam:
       config:
         - subnet: 172.20.0.0/16
-        - subnet: fd00::/80  
+        - subnet: fd00::/80
 
 services:
   web1:

+ 29 - 26
test/test_server-down/test_load-balancing.yml

@@ -1,29 +1,32 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: web.nginx-proxy.tld
+version: "2"
 
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: 83
-    VIRTUAL_HOST: web.nginx-proxy.tld
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: web.nginx-proxy.tld
 
-web3:
-  image: web
-  expose:
-    - "83"
-  environment:
-    WEB_PORTS: 83
-    VIRTUAL_HOST: web.nginx-proxy.tld
-  net: "none"
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: 83
+      VIRTUAL_HOST: web.nginx-proxy.tld
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+  web3:
+    image: web
+    expose:
+      - "83"
+    environment:
+      WEB_PORTS: 83
+      VIRTUAL_HOST: web.nginx-proxy.tld
+    network_mode: "none"
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 14 - 11
test/test_server-down/test_no-server-down.yml

@@ -1,12 +1,15 @@
-web:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: web.nginx-proxy.tld
+version: "2"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+services:
+  web:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: web.nginx-proxy.tld
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 15 - 12
test/test_server-down/test_server-down.yml

@@ -1,13 +1,16 @@
-web:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: 81
-    VIRTUAL_HOST: web.nginx-proxy.tld
-  net: "none"
+version: "2"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+services:
+  web:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: 81
+      VIRTUAL_HOST: web.nginx-proxy.tld
+    network_mode: "none"
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 4 - 2
test/test_ssl/test_dhparam.py

@@ -3,6 +3,7 @@ import subprocess
 
 import backoff
 import docker
+import pprint
 import pytest
 
 docker_client = docker.from_env()
@@ -60,7 +61,8 @@ def require_openssl(required_version):
 
 @require_openssl("1.0.2")
 def negotiate_cipher(sut_container, additional_params='', grep='Cipher is'):
-    host = f"{sut_container.attrs['NetworkSettings']['IPAddress']}:443"
+    sut_container.reload()
+    host = f"{sut_container.attrs['NetworkSettings']['Networks']['test_ssl_default']['IPAddress']}:443"
 
     try:
         # Enforce TLS 1.2 as newer versions don't support custom dhparam or ciphersuite preference.
@@ -77,7 +79,7 @@ def negotiate_cipher(sut_container, additional_params='', grep='Cipher is'):
     except subprocess.CalledProcessError as e:
         # Output a more helpful error, the original exception in this case isn't that helpful.
         # `from None` to ignore undesired output from exception chaining.
-        raise Exception("Failed to process CLI request:\n" + e.stderr) from None
+        raise Exception(f"Failed to process CLI request openssl s_client -connect {host} -tls1_2 {additional_params}:\n" + e.stderr) from None
 
 
 # The default `dh_bits` can vary due to configuration.

+ 67 - 65
test/test_ssl/test_dhparam.yml

@@ -1,73 +1,75 @@
-web5:
-  image: web
-  expose:
-    - "85"
-  environment:
-    WEB_PORTS: "85"
-    VIRTUAL_HOST: "web5.nginx-proxy.tld"
+version: "2"
 
-# Intended for testing with `dh-file` container.
-# VIRTUAL_HOST is paired with site-specific DH param file.
-# DEFAULT_HOST is required to avoid defaulting to web2,
-# if not specifying FQDN (`-servername`) in openssl queries.
-web2:
-  image: web
-  expose:
-    - "85"
-  environment:
-    WEB_PORTS: "85"
-    VIRTUAL_HOST: "web2.nginx-proxy.tld"
+services:
+  web5:
+    image: web
+    expose:
+      - "85"
+    environment:
+      WEB_PORTS: "85"
+      VIRTUAL_HOST: "web5.nginx-proxy.tld"
 
+  # Intended for testing with `dh-file` container.
+  # VIRTUAL_HOST is paired with site-specific DH param file.
+  # DEFAULT_HOST is required to avoid defaulting to web2,
+  # if not specifying FQDN (`-servername`) in openssl queries.
+  web2:
+    image: web
+    expose:
+      - "85"
+    environment:
+      WEB_PORTS: "85"
+      VIRTUAL_HOST: "web2.nginx-proxy.tld"
 
-# sut - System Under Test
-# `docker.sock` required for functionality
-# `certs` required to enable HTTPS via template
-with_default_group:
-  container_name: dh-default
-  image: &img-nginxproxy nginxproxy/nginx-proxy:test
-  environment: &env-common
-    - &default-host DEFAULT_HOST=web5.nginx-proxy.tld
-  volumes: &vols-common
-    - &docker-sock /var/run/docker.sock:/tmp/docker.sock:ro
-    - &nginx-certs ./certs:/etc/nginx/certs:ro
+  # sut - System Under Test
+  # `docker.sock` required for functionality
+  # `certs` required to enable HTTPS via template
+  with_default_group:
+    container_name: dh-default
+    image: &img-nginxproxy nginxproxy/nginx-proxy:test
+    environment: &env-common
+      - &default-host DEFAULT_HOST=web5.nginx-proxy.tld
+    volumes: &vols-common
+      - &docker-sock /var/run/docker.sock:/tmp/docker.sock:ro
+      - &nginx-certs ./certs:/etc/nginx/certs:ro
 
-with_alternative_group:
-  container_name: dh-env
-  environment:
-    - DHPARAM_BITS=3072
-    - *default-host
-  image: *img-nginxproxy
-  volumes: *vols-common
+  with_alternative_group:
+    container_name: dh-env
+    environment:
+      - DHPARAM_BITS=3072
+      - *default-host
+    image: *img-nginxproxy
+    volumes: *vols-common
 
-with_invalid_group:
-  container_name: invalid-group-1024
-  environment:
-    - DHPARAM_BITS=1024
-    - *default-host
-  image: *img-nginxproxy
-  volumes: *vols-common
+  with_invalid_group:
+    container_name: invalid-group-1024
+    environment:
+      - DHPARAM_BITS=1024
+      - *default-host
+    image: *img-nginxproxy
+    volumes: *vols-common
 
-with_custom_file:
-  container_name: dh-file
-  image: *img-nginxproxy
-  environment: *env-common
-  volumes:
-    - *docker-sock
-    - *nginx-certs
-    - ../../app/dhparam/ffdhe3072.pem:/etc/nginx/dhparam/dhparam.pem:ro
+  with_custom_file:
+    container_name: dh-file
+    image: *img-nginxproxy
+    environment: *env-common
+    volumes:
+      - *docker-sock
+      - *nginx-certs
+      - ../../app/dhparam/ffdhe3072.pem:/etc/nginx/dhparam/dhparam.pem:ro
 
-with_skip:
-  container_name: dh-skip
-  environment:
-    - DHPARAM_SKIP=true
-    - *default-host
-  image: *img-nginxproxy
-  volumes: *vols-common
+  with_skip:
+    container_name: dh-skip
+    environment:
+      - DHPARAM_SKIP=true
+      - *default-host
+    image: *img-nginxproxy
+    volumes: *vols-common
 
-with_skip_backward:
-  container_name: dh-skip-backward
-  environment:
-    - DHPARAM_GENERATION=false
-    - *default-host
-  image: *img-nginxproxy
-  volumes: *vols-common
+  with_skip_backward:
+    container_name: dh-skip-backward
+    environment:
+      - DHPARAM_GENERATION=false
+      - *default-host
+    image: *img-nginxproxy
+    volumes: *vols-common

+ 49 - 46
test/test_ssl/test_hsts.yml

@@ -1,51 +1,54 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "web1.nginx-proxy.tld"
+version: "2"
 
-web2:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "web2.nginx-proxy.tld"
-    HSTS: "off"
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "web1.nginx-proxy.tld"
 
-web3:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "web3.nginx-proxy.tld"
-    HSTS: "max-age=86400; includeSubDomains; preload"
+  web2:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "web2.nginx-proxy.tld"
+      HSTS: "off"
 
-web4:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "web4.nginx-proxy.tld"
-    HSTS: "off"
-    HTTPS_METHOD: "noredirect"
+  web3:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "web3.nginx-proxy.tld"
+      HSTS: "max-age=86400; includeSubDomains; preload"
 
-web5:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: http3-vhost-enabled.nginx-proxy.tld
-  labels:
-    com.github.nginx-proxy.nginx-proxy.http3.enable: "true"
+  web4:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "web4.nginx-proxy.tld"
+      HSTS: "off"
+      HTTPS_METHOD: "noredirect"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs:/etc/nginx/certs:ro
+  web5:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: http3-vhost-enabled.nginx-proxy.tld
+    labels:
+      com.github.nginx-proxy.nginx-proxy.http3.enable: "true"
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs:/etc/nginx/certs:ro

+ 18 - 15
test/test_ssl/test_https_port.yml

@@ -1,16 +1,19 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "*.nginx-proxy.tld"
+version: "2"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs:/etc/nginx/certs:ro
-  environment:
-    HTTP_PORT: 8080
-    HTTPS_PORT: 8443
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "*.nginx-proxy.tld"
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs:/etc/nginx/certs:ro
+    environment:
+      HTTP_PORT: 8080
+      HTTPS_PORT: 8443

+ 15 - 13
test/test_ssl/test_nohttp.yml

@@ -1,15 +1,17 @@
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: "82"
-    VIRTUAL_HOST: "web2.nginx-proxy.tld"
-    HTTPS_METHOD: nohttp
+version: "2"
 
+services:
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: "82"
+      VIRTUAL_HOST: "web2.nginx-proxy.tld"
+      HTTPS_METHOD: nohttp
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs:/etc/nginx/certs:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs:/etc/nginx/certs:ro

+ 14 - 12
test/test_ssl/test_nohttps.yml

@@ -1,14 +1,16 @@
-web:
-  image: web
-  expose:
-    - "83"
-  environment:
-    WEB_PORTS: "83"
-    VIRTUAL_HOST: "web.nginx-proxy.tld"
-    HTTPS_METHOD: nohttps
+version: "2"
 
+services:
+  web:
+    image: web
+    expose:
+      - "83"
+    environment:
+      WEB_PORTS: "83"
+      VIRTUAL_HOST: "web.nginx-proxy.tld"
+      HTTPS_METHOD: nohttps
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 15 - 13
test/test_ssl/test_noredirect.yml

@@ -1,15 +1,17 @@
-web3:
-  image: web
-  expose:
-    - "83"
-  environment:
-    WEB_PORTS: "83"
-    VIRTUAL_HOST: "web3.nginx-proxy.tld"
-    HTTPS_METHOD: noredirect
+version: "2"
 
+services:
+  web3:
+    image: web
+    expose:
+      - "83"
+    environment:
+      WEB_PORTS: "83"
+      VIRTUAL_HOST: "web3.nginx-proxy.tld"
+      HTTPS_METHOD: noredirect
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs:/etc/nginx/certs:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs:/etc/nginx/certs:ro

+ 25 - 23
test/test_ssl/test_virtual_path.yml

@@ -1,26 +1,28 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "www.nginx-proxy.tld"
-    VIRTUAL_PATH: "/web1/"
-    VIRTUAL_DEST: "/"
+version: "2"
 
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: "82"
-    VIRTUAL_HOST: "www.nginx-proxy.tld"
-    VIRTUAL_PATH: "/web2/"
-    VIRTUAL_DEST: "/"
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "www.nginx-proxy.tld"
+      VIRTUAL_PATH: "/web1/"
+      VIRTUAL_DEST: "/"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs:/etc/nginx/certs:ro
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: "82"
+      VIRTUAL_HOST: "www.nginx-proxy.tld"
+      VIRTUAL_PATH: "/web2/"
+      VIRTUAL_DEST: "/"
 
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs:/etc/nginx/certs:ro

+ 15 - 12
test/test_ssl/test_wildcard.yml

@@ -1,13 +1,16 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "*.nginx-proxy.tld"
+version: "2"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs:/etc/nginx/certs:ro
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "*.nginx-proxy.tld"
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs:/etc/nginx/certs:ro

+ 16 - 14
test/test_trust-downstream-proxy/test_default.yml

@@ -1,16 +1,18 @@
-web:
-  image: web
-  expose:
-    - "80"
-  environment:
-    WEB_PORTS: 80
-    VIRTUAL_HOST: web.nginx-proxy.tld
-    HTTPS_METHOD: noredirect
+version: "2"
 
+services:
+  web:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: web.nginx-proxy.tld
+      HTTPS_METHOD: noredirect
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs/web.nginx-proxy.tld.crt:/etc/nginx/certs/web.nginx-proxy.tld.crt:ro
-    - ./certs/web.nginx-proxy.tld.key:/etc/nginx/certs/web.nginx-proxy.tld.key:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs/web.nginx-proxy.tld.crt:/etc/nginx/certs/web.nginx-proxy.tld.crt:ro
+      - ./certs/web.nginx-proxy.tld.key:/etc/nginx/certs/web.nginx-proxy.tld.key:ro

+ 18 - 16
test/test_trust-downstream-proxy/test_disabled.yml

@@ -1,18 +1,20 @@
-web:
-  image: web
-  expose:
-    - "80"
-  environment:
-    WEB_PORTS: 80
-    VIRTUAL_HOST: web.nginx-proxy.tld
-    HTTPS_METHOD: noredirect
+version: "2"
 
+services:
+  web:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: web.nginx-proxy.tld
+      HTTPS_METHOD: noredirect
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  environment:
-    TRUST_DOWNSTREAM_PROXY: "false"
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs/web.nginx-proxy.tld.crt:/etc/nginx/certs/web.nginx-proxy.tld.crt:ro
-    - ./certs/web.nginx-proxy.tld.key:/etc/nginx/certs/web.nginx-proxy.tld.key:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    environment:
+      TRUST_DOWNSTREAM_PROXY: "false"
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs/web.nginx-proxy.tld.crt:/etc/nginx/certs/web.nginx-proxy.tld.crt:ro
+      - ./certs/web.nginx-proxy.tld.key:/etc/nginx/certs/web.nginx-proxy.tld.key:ro

+ 18 - 16
test/test_trust-downstream-proxy/test_enabled.yml

@@ -1,18 +1,20 @@
-web:
-  image: web
-  expose:
-    - "80"
-  environment:
-    WEB_PORTS: 80
-    VIRTUAL_HOST: web.nginx-proxy.tld
-    HTTPS_METHOD: noredirect
+version: "2"
 
+services:
+  web:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: web.nginx-proxy.tld
+      HTTPS_METHOD: noredirect
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  environment:
-    TRUST_DOWNSTREAM_PROXY: "true"
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs/web.nginx-proxy.tld.crt:/etc/nginx/certs/web.nginx-proxy.tld.crt:ro
-    - ./certs/web.nginx-proxy.tld.key:/etc/nginx/certs/web.nginx-proxy.tld.key:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    environment:
+      TRUST_DOWNSTREAM_PROXY: "true"
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs/web.nginx-proxy.tld.crt:/etc/nginx/certs/web.nginx-proxy.tld.crt:ro
+      - ./certs/web.nginx-proxy.tld.key:/etc/nginx/certs/web.nginx-proxy.tld.key:ro

+ 1 - 1
test/test_upstream-name/test_predictable-name.yml

@@ -1,4 +1,4 @@
-version: '2'
+version: "2"
 
 services:
   web:

+ 1 - 1
test/test_upstream-name/test_sha1-name.yml

@@ -1,4 +1,4 @@
-version: '2'
+version: "2"
 
 services:
   web:

+ 6 - 0
test/test_vhost-empty-string.yml

@@ -1,8 +1,11 @@
+version: "2"
+
 services:
   sut:
     image: nginxproxy/nginx-proxy:test
     volumes:
       - /var/run/docker.sock:/tmp/docker.sock:ro
+
   web1:
     image: web
     expose:
@@ -11,6 +14,7 @@ services:
       WEB_PORTS: "81"
       # The space is intentional (should be trimmed).
       VIRTUAL_HOST: " "
+
   web2:
     image: web
     expose:
@@ -19,6 +23,7 @@ services:
       WEB_PORTS: "82"
       # The space is intentional (should be trimmed).
       VIRTUAL_HOST: "web2.nginx-proxy.test ,"
+
   web3:
     image: web
     expose:
@@ -27,6 +32,7 @@ services:
       WEB_PORTS: "83"
       # The space is intentional (should be trimmed).
       VIRTUAL_HOST: " ,web3.nginx-proxy.test"
+
   web4:
     image: web
     expose:

+ 1 - 1
test/test_vhost-in-multiple-networks.yml

@@ -1,4 +1,4 @@
-version: '2'
+version: "2"
 
 networks:
   net1: {}

+ 44 - 43
test/test_virtual-path/test_custom_conf.yml

@@ -1,48 +1,49 @@
+version: "2"
 
-foo:
-  image: web
-  expose:
-    - "42"
-  environment:
-    WEB_PORTS: "42"
-    VIRTUAL_HOST: "foo.nginx-proxy.test"
+services:
+  foo:
+    image: web
+    expose:
+      - "42"
+    environment:
+      WEB_PORTS: "42"
+      VIRTUAL_HOST: "foo.nginx-proxy.test"
 
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "nginx-proxy.test"
-    VIRTUAL_PATH: "/web1/"
-    VIRTUAL_DEST: "/"
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "nginx-proxy.test"
+      VIRTUAL_PATH: "/web1/"
+      VIRTUAL_DEST: "/"
 
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: "82"
-    VIRTUAL_HOST: "nginx-proxy.test"
-    VIRTUAL_PATH: "/web2/"
-    VIRTUAL_DEST: "/"
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: "82"
+      VIRTUAL_HOST: "nginx-proxy.test"
+      VIRTUAL_PATH: "/web2/"
+      VIRTUAL_DEST: "/"
 
-web3:
-  image: web
-  expose:
-    - "83"
-  environment:
-    WEB_PORTS: "83"
-    VIRTUAL_HOST: "nginx-proxy.test"
-    VIRTUAL_PATH: "~ ^/(web3|alt)/"
-
-sut:
-  image: nginxproxy/nginx-proxy:test
-  environment:
-    DEFAULT_ROOT: 418
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./foo.conf:/etc/nginx/vhost.d/foo.nginx-proxy.test:ro
-    - ./bar.conf:/etc/nginx/vhost.d/nginx-proxy.test_918d687a929083edd0c7224ee2293e0e7c062ab4_location:ro
-    - ./alternate.conf:/etc/nginx/vhost.d/nginx-proxy.test_7fb22b74bbdf907425dbbad18e4462565cada230_location:ro
+  web3:
+    image: web
+    expose:
+      - "83"
+    environment:
+      WEB_PORTS: "83"
+      VIRTUAL_HOST: "nginx-proxy.test"
+      VIRTUAL_PATH: "~ ^/(web3|alt)/"
 
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    environment:
+      DEFAULT_ROOT: 418
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./foo.conf:/etc/nginx/vhost.d/foo.nginx-proxy.test:ro
+      - ./bar.conf:/etc/nginx/vhost.d/nginx-proxy.test_918d687a929083edd0c7224ee2293e0e7c062ab4_location:ro
+      - ./alternate.conf:/etc/nginx/vhost.d/nginx-proxy.test_7fb22b74bbdf907425dbbad18e4462565cada230_location:ro

+ 19 - 16
test/test_virtual-path/test_forwarding.yml

@@ -1,17 +1,20 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "www.nginx-proxy.tld"
-    VIRTUAL_PATH: "/web1/"
-    VIRTUAL_DEST: "/"
+version: "2"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./certs:/etc/nginx/certs:ro
-  environment:
-    - DEFAULT_ROOT=301 http://$$host/web1$$request_uri
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "www.nginx-proxy.tld"
+      VIRTUAL_PATH: "/web1/"
+      VIRTUAL_DEST: "/"
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs:/etc/nginx/certs:ro
+    environment:
+      - DEFAULT_ROOT=301 http://$$host/web1$$request_uri

+ 37 - 34
test/test_virtual-path/test_location_precedence.yml

@@ -1,37 +1,40 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "foo.nginx-proxy.test"
-    VIRTUAL_PATH: "/web1/"
-    VIRTUAL_DEST: "/"
+version: "2"
 
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: "82"
-    VIRTUAL_HOST: "bar.nginx-proxy.test"
-    VIRTUAL_PATH: "/web2/"
-    VIRTUAL_DEST: "/"
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "foo.nginx-proxy.test"
+      VIRTUAL_PATH: "/web1/"
+      VIRTUAL_DEST: "/"
 
-web3:
-  image: web
-  expose:
-    - "83"
-  environment:
-    WEB_PORTS: "83"
-    VIRTUAL_HOST: "bar.nginx-proxy.test"
-    VIRTUAL_PATH: "/web3/"
-    VIRTUAL_DEST: "/"
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: "82"
+      VIRTUAL_HOST: "bar.nginx-proxy.test"
+      VIRTUAL_PATH: "/web2/"
+      VIRTUAL_DEST: "/"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
-    - ./default.conf:/etc/nginx/vhost.d/default_location:ro
-    - ./host.conf:/etc/nginx/vhost.d/bar.nginx-proxy.test_location:ro
-    - ./path.conf:/etc/nginx/vhost.d/bar.nginx-proxy.test_99f2db0ed8aa95dbb5b87fca79c7eff2ff6bb8bd_location:ro
+  web3:
+    image: web
+    expose:
+      - "83"
+    environment:
+      WEB_PORTS: "83"
+      VIRTUAL_HOST: "bar.nginx-proxy.test"
+      VIRTUAL_PATH: "/web3/"
+      VIRTUAL_DEST: "/"
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./default.conf:/etc/nginx/vhost.d/default_location:ro
+      - ./host.conf:/etc/nginx/vhost.d/bar.nginx-proxy.test_location:ro
+      - ./path.conf:/etc/nginx/vhost.d/bar.nginx-proxy.test_99f2db0ed8aa95dbb5b87fca79c7eff2ff6bb8bd_location:ro

+ 1 - 0
test/test_virtual-path/test_virtual_paths.py

@@ -39,6 +39,7 @@ def web4(docker_compose):
         },
         ports={"84/tcp": None}
     )
+    docker_compose.networks.get("test_virtual-path_default").connect(container)
     sleep(2)  # give it some time to initialize and for docker-gen to detect it
     yield container
     try:

+ 39 - 37
test/test_virtual-path/test_virtual_paths.yml

@@ -1,42 +1,44 @@
+version: "2"
 
-foo:
-  image: web
-  expose:
-    - "42"
-  environment:
-    WEB_PORTS: "42"
-    VIRTUAL_HOST: "foo.nginx-proxy.test"
+services:
+  foo:
+    image: web
+    expose:
+      - "42"
+    environment:
+      WEB_PORTS: "42"
+      VIRTUAL_HOST: "foo.nginx-proxy.test"
 
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "nginx-proxy.test"
-    VIRTUAL_PATH: "/web1/"
-    VIRTUAL_DEST: "/"
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "nginx-proxy.test"
+      VIRTUAL_PATH: "/web1/"
+      VIRTUAL_DEST: "/"
 
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: "82"
-    VIRTUAL_HOST: "nginx-proxy.test"
-    VIRTUAL_PATH: "/web2/"
-    VIRTUAL_DEST: "/"
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: "82"
+      VIRTUAL_HOST: "nginx-proxy.test"
+      VIRTUAL_PATH: "/web2/"
+      VIRTUAL_DEST: "/"
 
-web3:
-  image: web
-  expose:
-    - "83"
-  environment:
-    WEB_PORTS: "83"
-    VIRTUAL_HOST: "nginx-proxy.test"
-    VIRTUAL_PATH: "/"
+  web3:
+    image: web
+    expose:
+      - "83"
+    environment:
+      WEB_PORTS: "83"
+      VIRTUAL_HOST: "nginx-proxy.test"
+      VIRTUAL_PATH: "/"
 
-sut:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 34 - 32
test/test_wildcard_host.yml

@@ -1,37 +1,39 @@
-web1:
-  image: web
-  expose:
-    - "81"
-  environment:
-    WEB_PORTS: "81"
-    VIRTUAL_HOST: "*.nginx-proxy.test"
+version: "2"
 
-web2:
-  image: web
-  expose:
-    - "82"
-  environment:
-    WEB_PORTS: "82"
-    VIRTUAL_HOST: "test.nginx-proxy.*"
+services:
+  web1:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "*.nginx-proxy.test"
 
-web3:
-  image: web
-  expose:
-    - "83"
-  environment:
-    WEB_PORTS: "83"
-    VIRTUAL_HOST: ~^web3\..*\.nginx-proxy\.regexp
+  web2:
+    image: web
+    expose:
+      - "82"
+    environment:
+      WEB_PORTS: "82"
+      VIRTUAL_HOST: "test.nginx-proxy.*"
 
-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
+  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:
-  image: nginxproxy/nginx-proxy:test
-  volumes:
-    - /var/run/docker.sock:/tmp/docker.sock:ro
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro