Sfoglia il codice sorgente

implémentation du SSR en production

DESKTOP-SMCIPAV\falko 6 mesi fa
parent
commit
29517a0dfc
2 ha cambiato i file con 52 aggiunte e 9 eliminazioni
  1. 22 0
      build/docker/angular-ssr/Dockerfile
  2. 30 9
      docker-compose.yml

+ 22 - 0
build/docker/angular-ssr/Dockerfile

@@ -0,0 +1,22 @@
+FROM node:20-alpine AS builder
+
+WORKDIR /app
+
+COPY angular-client/package*.json ./
+RUN npm ci
+
+COPY angular-client/ ./
+RUN npm run build:ssr
+
+FROM node:20-alpine AS runner
+
+WORKDIR /app
+ENV NODE_ENV=production
+ENV PORT=4000
+
+COPY --from=builder /app/dist ./dist
+COPY --from=builder /app/package.json ./package.json
+
+EXPOSE 4000
+
+CMD ["node", "dist/fatboar/server/main.js"]

+ 30 - 9
docker-compose.yml

@@ -89,25 +89,46 @@ services:
       - private
     restart: unless-stopped
 
-  apache_preprod:
+  
+  angular_ssr_preprod:
     build:
       context: ./
-      dockerfile: build/docker/apache/Dockerfile
+      dockerfile: build/docker/angular-ssr/Dockerfile
     ports:
-      - "8080:80"
+      - "4000:4000"
     networks:
       - web
       - private
-    volumes:
-      - /var/log:/var/log/apache2
     labels:
       - traefik.enable=true
-      - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
-      - traefik.http.services.apache_preprod.loadbalancer.server.port=80
-      - traefik.http.routers.apache_preprod.entrypoints=websecure
-      - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
+      - traefik.http.routers.angular_ssr_preprod.rule=Host(`angular-preprod.foodgame.fr`)
+      - traefik.http.services.angular_ssr_preprod.loadbalancer.server.port=4000
+      - traefik.http.routers.angular_ssr_preprod.entrypoints=websecure
+      - traefik.http.routers.angular_ssr_preprod.tls.certresolver=myresolver
     restart: always
 
+  
+  
+  
+  # apache_preprod:
+  #   build:
+  #     context: ./
+  #     dockerfile: build/docker/apache/Dockerfile
+  #   ports:
+  #     - "8080:80"
+  #   networks:
+  #     - web
+  #     - private
+  #   volumes:
+  #     - /var/log:/var/log/apache2
+  #   labels:
+  #     - traefik.enable=true
+  #     - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
+  #     - traefik.http.services.apache_preprod.loadbalancer.server.port=80
+  #     - traefik.http.routers.apache_preprod.entrypoints=websecure
+  #     - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
+  #   restart: always
+
 
 # version: '3.0' # specify docker-compose version