Przeglądaj źródła

test: separate containers (contd)

Nicolas Duchon 5 miesięcy temu
rodzic
commit
77978eab96

+ 6 - 2
test/conftest.py

@@ -353,7 +353,11 @@ def wait_for_nginxproxy_to_be_ready():
     substring "Watching docker events"
     """
     containers = docker_client.containers.list(filters={"ancestor": f"nginxproxy/nginx-proxy:{IMAGE_TAG}"})
-    if len(containers) != 1:
+    if len(containers) > 1:
+        logging.info(f"Too many running nginxproxy/nginx-proxy:{IMAGE_TAG} containers")
+        return
+    elif len(containers) == 0:
+        logging.info(f"No running nginxproxy/nginx-proxy:{IMAGE_TAG} container")
         return
     container = containers[0]
     for line in container.logs(stream=True):
@@ -387,7 +391,7 @@ def docker_compose_file(request):
     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.debug(f"using docker compose file {docker_compose_file}")
+    logging.info(f"using docker compose file {docker_compose_file}")
     return docker_compose_file
 
 

+ 3 - 5
test/test_dockergen/test_dockergen.py

@@ -1,12 +1,10 @@
-import docker
+import os
 import pytest
-from packaging.version import Version
 
 
-raw_version = docker.from_env().version()["Version"]
 pytestmark = pytest.mark.skipif(
-    Version(raw_version) < Version("1.13"),
-    reason="Docker compose syntax v3 requires docker engine v1.13 or later (got {raw_version})"
+    os.environ.get("COMPOSE_PROFILES") == "separateContainers",
+    reason="This test does not need to run in separateContainers mode"
 )
 
 

+ 6 - 5
test/test_dockergen/test_dockergen.yml

@@ -1,9 +1,13 @@
+volumes:
+  nginx_conf_dockergen:
+
+
 services:
   nginx:
     image: nginx
     container_name: nginx
     volumes:
-      - nginx_conf:/etc/nginx/conf.d:ro
+      - nginx_conf_dockergen:/etc/nginx/conf.d:ro
 
   dockergen:
     image: nginxproxy/docker-gen
@@ -11,7 +15,7 @@ services:
     volumes:
       - /var/run/docker.sock:/tmp/docker.sock:ro
       - ../../nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl
-      - nginx_conf:/etc/nginx/conf.d
+      - nginx_conf_dockergen:/etc/nginx/conf.d
 
   web:
     image: web
@@ -21,6 +25,3 @@ services:
     environment:
       WEB_PORTS: 80
       VIRTUAL_HOST: whoami.nginx.container.docker
-
-volumes:
-  nginx_conf:

+ 6 - 0
test/test_ssl/test_dhparam.py

@@ -1,3 +1,4 @@
+import os
 import re
 import subprocess
 
@@ -147,6 +148,11 @@ def get_env(sut_container, var):
 #
 ###############################################################################
 
+pytestmark = pytest.mark.skipif(
+    condition = os.environ.get("COMPOSE_PROFILES") == "separateContainers",
+    reason = "DH parameters generation is not supported in separate containers mode"
+)
+
 def test_default_dhparam_is_ffdhe4096(docker_compose):
     container_name="dh-default"
     sut_container = docker_client.containers.get(container_name)

+ 1 - 1
test/test_ssl/test_hsts.yml

@@ -55,7 +55,7 @@ services:
     image: nginxproxy/nginx-proxy:test
     volumes:
       - &dockerSocket /var/run/docker.sock:/tmp/docker.sock:ro
-      - &certs ./cert_selection:/etc/nginx/certs:ro
+      - &certs ./certs:/etc/nginx/certs:ro
 
   sut-dockergen:
     profiles:

+ 6 - 0
test/test_ssl/test_https_port.yml

@@ -15,6 +15,9 @@ services:
     profiles:
       - singleContainer
     image: nginxproxy/nginx-proxy:test
+    ports:
+      - "8080:8080"
+      - "8443:8443"
     volumes:
       - &dockerSocket /var/run/docker.sock:/tmp/docker.sock:ro
       - &certs ./certs:/etc/nginx/certs:ro
@@ -39,6 +42,9 @@ services:
       - separateContainers
     container_name: nginx-proxy
     image: nginx:alpine
+    ports:
+      - "8080:8080"
+      - "8443:8443"
     volumes:
       - *confVolume
       - *certs

+ 31 - 6
test/test_ssl/wildcard_cert_and_nohttps/docker-compose.yml

@@ -1,13 +1,38 @@
-version: "3"
+volumes:
+  nginx_conf:
 
-services:
 
-  proxy:
+services:
+  sut:
+    profiles:
+      - singleContainer
     image: nginxproxy/nginx-proxy:test
     volumes:
-      - /var/run/docker.sock:/tmp/docker.sock:ro
-      - ./certs:/etc/nginx/certs:ro
-      - ./acme_root:/usr/share/nginx/html:ro
+      - &dockerSocket /var/run/docker.sock:/tmp/docker.sock:ro
+      - &certs ./certs:/etc/nginx/certs:ro
+      - &acmeRoot ./acme_root:/usr/share/nginx/html:ro
+
+  sut-dockergen:
+    profiles:
+      - separateContainers
+    image: nginxproxy/nginx-proxy:test-dockergen
+    volumes:
+      - &confVolume nginx_conf:/etc/nginx/conf.d
+      - *dockerSocket
+      - *certs
+      - *acmeRoot
+
+  sut-nginx:
+    profiles:
+      - separateContainers
+    container_name: nginx-proxy
+    image: nginx:alpine
+    volumes:
+      - *confVolume
+      - *certs
+      - *acmeRoot
+    labels:
+      - "com.github.nginx-proxy.nginx-proxy.nginx"
 
   web1:
     image: web

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

@@ -35,6 +35,7 @@ services:
     image: nginx:alpine
     volumes:
       - *confVolume
+    networks: *nginxProxyNetworks
     labels:
       - "com.github.nginx-proxy.nginx-proxy.nginx"