diff --git a/cours/10-Docker_compose.pdf b/cours/10-Docker_compose.pdf
index bc09b955d575893b3146d7a0c8922d010b28179f..0e0ea13723dee4e7c8f43772d2bedabc6a87599c 100644
Binary files a/cours/10-Docker_compose.pdf and b/cours/10-Docker_compose.pdf differ
diff --git a/labs/lab9-solution/project/docker-compose.yml b/labs/lab9-solution/project/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3c7503358f10717e2ca0ff819666a28fd0355a8d
--- /dev/null
+++ b/labs/lab9-solution/project/docker-compose.yml
@@ -0,0 +1,39 @@
+networks:
+  web-net:
+  proc-net:
+
+services:
+  web:
+    # Image based on web/Dockerfile
+    build: web
+    restart: always
+    networks:
+      - web-net
+    hostname: web
+    ports:
+      - 3000:80
+    # Bind mount
+    volumes:
+      - ./data:/data
+
+  logger:
+    # Image based on logger/Dockerfile
+    build: logger
+    restart: always
+    networks:
+      - proc-net
+    hostname: logger
+    ports:
+      - 2000:12345
+
+  md2html:
+    # Image based on md2html/Dockerfile
+    build: md2html
+    restart: no
+    networks:
+      - web-net
+      - proc-net
+    hostname: md2html
+    # Bind mount
+    volumes:
+      - ./data:/data
diff --git a/labs/lab9-solution/project/run_compose.sh b/labs/lab9-solution/project/run_compose.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d70b1d81f124b5964755a04206ae8bb1e51e68f8
--- /dev/null
+++ b/labs/lab9-solution/project/run_compose.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# build and run web and logger services
+docker compose up -d web logger
+
+# wait some time...
+sleep 5
+
+# build and run md2html
+docker compose up md2html