diff --git a/docker-compose.server.yml b/docker-compose.server.yml new file mode 100644 index 0000000..c3da732 --- /dev/null +++ b/docker-compose.server.yml @@ -0,0 +1,38 @@ +services: + app: + image: app:latest + build: + context: docker + dockerfile: Dockerfile + 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..a996f8a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,11 +4,16 @@ services: build: context: docker dockerfile: Dockerfile - ports: - - "9010:80" 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..249d015 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 \ @@ -55,5 +55,17 @@ WORKDIR /var/www/html COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh +FROM debian:latest AS dev + # Set entrypoint -ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file +ENTRYPOINT ["/entrypoint.sh"] + +FROM debian:latest AS prod + +COPY . /var/www/html + +RUN cd /var/www/html/backend && composer install --optimize-autoloader --no-dev +RUN cd /var/www/html/frontend && npm install && npm run build + +# Set entrypoint +ENTRYPOINT ["/entrypoint.sh"]