From 410bc64cab153e367664b15c8b0efca69c225c5f 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 | 39 +++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 19 +++++++++++++++---- docker/Dockerfile | 20 +++++++++++++++++--- 3 files changed, 71 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..d7ec744 --- /dev/null +++ b/docker-compose.server.yml @@ -0,0 +1,39 @@ +services: + app: + image: app:latest + build: + context: . + dockerfile: docker/Dockerfile + target: prod + volumes: + - ./:/var/www/html + - ./docker/nginx/default.conf:/etc/nginx/sites-enabled/ + 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..368f190 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,13 +2,18 @@ services: app: image: app:latest build: - context: docker - dockerfile: Dockerfile - ports: - - "9010:80" + context: . + dockerfile: docker/Dockerfile 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 +25,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..5c038e7 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,22 @@ 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 + +COPY . /var/www/html + +WORKDIR /var/www/html + +RUN cd backend && composer install --optimize-autoloader --no-dev +RUN cd frontend && npm install && npm run build + +# Set entrypoint +ENTRYPOINT ["/entrypoint.sh"]