From de51bd7480bc0fb74363c5006fd3f4b57f7a230b Mon Sep 17 00:00:00 2001 From: Tim Lappe Date: Sat, 26 Apr 2025 01:59:59 +0200 Subject: [PATCH] Added traefik config --- docker-compose.server.yml | 36 ++++++++++++++++++++++++++++++++++++ docker-compose.yml | 20 ++++++++++++++++---- docker/Dockerfile | 21 ++++++++++++++++++--- 3 files changed, 70 insertions(+), 7 deletions(-) create mode 100644 docker-compose.server.yml diff --git a/docker-compose.server.yml b/docker-compose.server.yml new file mode 100644 index 0000000..ce9d136 --- /dev/null +++ b/docker-compose.server.yml @@ -0,0 +1,36 @@ +services: + app: + image: app:latest + build: + context: . + dockerfile: docker/Dockerfile + target: prod + labels: + - "traefik.enable=true" + - "traefik.http.routers.calendi.entrypoints=web" + - "traefik.http.routers.calendi.rule=Host(`calendi.strolap.com`)" + - "traefik.http.routers.calendi.tls=true" + - "traefik.http.routers.calendi.certresolver=strolap" + - "traefik.http.services.calendi.loadbalancer.server.port=80" + networks: + - proxy + + postgres: + image: postgres:15 + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + ports: + - "5432:5432" + volumes: + - ./var/postgres_data:/var/lib/postgresql/data + networks: + - proxy + +networks: + proxy: + external: true + +volumes: + postgres_data: diff --git a/docker-compose.yml b/docker-compose.yml index 1f89138..ca32db1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,13 +2,19 @@ services: app: image: app:latest build: - context: docker - dockerfile: Dockerfile - ports: - - "9010:80" + context: . + dockerfile: docker/Dockerfile + target: dev volumes: - ./:/var/www/html - ./docker/nginx/default.conf:/etc/nginx/sites-enabled/default + labels: + - "traefik.enable=true" + - "traefik.http.routers.app.entrypoints=web" + - "traefik.http.routers.app.rule=Host(`calendi.test`)" + - "traefik.http.services.app.loadbalancer.server.port=80" + networks: + - proxy postgres: image: postgres:15 @@ -20,6 +26,12 @@ services: - "5432:5432" volumes: - ./var/postgres_data:/var/lib/postgresql/data + networks: + - proxy + +networks: + proxy: + external: true volumes: postgres_data: diff --git a/docker/Dockerfile b/docker/Dockerfile index e517535..1b4fa01 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:latest +FROM debian:latest AS builder # Install dependencies RUN apt-get update && apt-get install -y \ @@ -52,8 +52,23 @@ RUN apt-get clean && rm -rf /var/lib/apt/lists/* WORKDIR /var/www/html # Copy entrypoint script -COPY entrypoint.sh /entrypoint.sh +COPY docker/entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh +FROM builder AS dev + # Set entrypoint -ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file +ENTRYPOINT ["/entrypoint.sh"] + +FROM builder AS prod + +WORKDIR /var/www/html + +COPY . . +COPY docker/nginx/default.conf /etc/nginx/sites-enabled/default + +RUN cd backend && composer install +RUN cd frontend && npm install && npm run build + +# Set entrypoint +ENTRYPOINT ["/entrypoint.sh"]