Angular 16 SSR и реплики в Docker Compose
Помогите разобраться с вопросом. Запускаю приложение Angular 16 с SSR и гидратацией используя Docker Compose с приведенным примером и всё работает нормально. Но хочу запустить несколько реплик для front используя комманду docker-compose up --scale front=3 -d - контейнеры запускаются, но в логах каждой реплики всегда одна и таже ошибка Cannot read properties of undefined (reading '_rawValidators'), что приводит к неработоспособности приложения. Может быть проблема с гидратацией, но это не точно.
version: '3.7'
services:
traefik:
image: traefik:v2.4
command:
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=${EMAIL}"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./letsencrypt:/letsencrypt"
labels:
- "traefik.http.middlewares.traefik-compress.compress=true"
networks:
- internal
restart: always
front:
build:
context: .
dockerfile: Dockerfile
labels:
- "traefik.enable=true"
- "traefik.http.routers.front.rule=Host(`${DOMAIN_NAME}`) || Host(`${DOMAIN_WWW_NAME}`)"
- "traefik.http.routers.front.entrypoints=web"
- "traefik.http.routers.front.middlewares=redirect-to-https@docker,redirect-to-non-www@docker,traefik-compress"
- "traefik.http.routers.front-secure.rule=Host(`${DOMAIN_NAME}`) || Host(`${DOMAIN_WWW_NAME}`)"
- "traefik.http.routers.front-secure.entrypoints=websecure"
- "traefik.http.routers.front-secure.tls=true"
- "traefik.http.routers.front-secure.tls.certresolver=myresolver"
- "traefik.http.routers.front-secure.middlewares=redirect-to-non-www@docker,traefik-compress"
- "traefik.http.services.front.loadbalancer.server.port=4000"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true"
- "traefik.http.middlewares.redirect-to-non-www.redirectregex.regex=^https?://${DOMAIN_WWW_NAME}/(.*)"
- "traefik.http.middlewares.redirect-to-non-www.redirectregex.replacement=https://${DOMAIN_NAME}/$${1}"
- "traefik.http.middlewares.redirect-to-non-www.redirectregex.permanent=true"
networks:
- internal
restart: always
networks:
internal:
driver: bridge
Dockerfile:
FROM node:22.8-alpine
WORKDIR /app
COPY ./package.json ./package-lock.json /app/
RUN npm install
COPY . /app
EXPOSE 4000
RUN npm run build:ssr
CMD npm run serve:ssr