From 48cd499b8fe4099228ed44aab423af4ed38cbdd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E5=AE=87=E8=BF=AA?= Date: Fri, 26 Dec 2025 17:48:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0docker-compose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yaml | 49 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 docker-compose.yaml diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..9834254 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,49 @@ +services: + # Web App Service + webapp: + build: + context: . + dockerfile: Dockerfile + container_name: webapp + restart: unless-stopped + networks: + - webnet + labels: + - "traefik.enable=true" + - "traefik.http.routers.webapp.rule=Host(`duooomi.com`)" + - "traefik.http.routers.webapp.entrypoints=websecure" + - "traefik.http.routers.webapp.tls.certresolver=myresolver" + - "traefik.http.services.webapp.loadbalancer.server.port=5173" + expose: + - "5173" + + # Traefik Reverse Proxy + traefik: + image: traefik:v3.0 + container_name: traefik + restart: unless-stopped + command: + - "--api.insecure=true" + - "--providers.docker=true" + - "--providers.docker.exposedbydefault=false" + - "--entrypoints.web.address=:80" + - "--entrypoints.websecure.address=:443" + - "--certificatesresolvers.myresolver.acme.tlschallenge=true" + - "--certificatesresolvers.myresolver.acme.email=admin@duooomi.com" + - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" + ports: + - "80:80" + - "443:443" + - "8080:8080" # Traefik dashboard + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "./letsencrypt:/letsencrypt" + networks: + - webnet + +networks: + webnet: + driver: bridge + +volumes: + letsencrypt: \ No newline at end of file