Просмотр исходного кода

test: wait for docker-gen container to be ready too

Nicolas Duchon 2 недель назад
Родитель
Сommit
4af3be397a
1 измененных файлов с 16 добавлено и 6 удалено
  1. 16 6
      test/conftest.py

+ 16 - 6
test/conftest.py

@@ -348,16 +348,26 @@ def docker_compose_down(compose_files: List[str], project_name: str):
 
 def wait_for_nginxproxy_to_be_ready():
     """
-    If one (and only one) container started from image nginxproxy/nginx-proxy:test is found,
-    wait for its log to contain substring "Watching docker events"
+    If one (and only one) container started from image nginxproxy/nginx-proxy:test
+    or nginxproxy/docker-gen:latest is found, wait for its log to contain the substring "Watching docker events"
     """
-    containers = docker_client.containers.list(filters={"ancestor": "nginxproxy/nginx-proxy:test"})
-    if len(containers) != 1:
+    nginx_proxy_containers = docker_client.containers.list(filters={"ancestor": "nginxproxy/nginx-proxy:test"})
+    docker_gen_containers = docker_client.containers.list(filters={"ancestor": "nginxproxy/docker-gen:latest"})
+
+    container_name = "nginx-proxy"
+
+    if len(nginx_proxy_containers) == 1:
+        container = nginx_proxy_containers.pop()
+    elif len(docker_gen_containers) == 1:
+        container = docker_gen_containers.pop()
+        container_name = "docker-gen"
+    else:
+        logging.debug("Either more than one or no nginx-proxy or docker-gen container found, skipping container readiness check")
         return
-    container = containers[0]
+
     for line in container.logs(stream=True):
         if b"Watching docker events" in line:
-            logging.debug("nginx-proxy ready")
+            logging.debug(f"{container_name} ready")
             break