Files
IdP/apps/sso-core/Dockerfile
2026-06-24 14:45:45 +03:00

47 lines
1.4 KiB
Docker

# syntax=docker/dockerfile:1.4
FROM node:24-alpine
WORKDIR /app
RUN apk add --no-cache openssl
ARG NPM_REGISTRY=https://registry.npmjs.org
COPY package.json package-lock.json .npmrc ./
COPY apps/sso-core/package.json ./apps/sso-core/
COPY apps/api-gateway/package.json ./apps/api-gateway/
COPY apps/frontend/package.json ./apps/frontend/
COPY apps/docs/package.json ./apps/docs/
RUN --mount=type=cache,target=/root/.npm \
npm config set registry "${NPM_REGISTRY}" && \
for i in 1 2 3 4 5; do \
echo "npm ci: попытка $i/5" && \
npm ci --no-audit --no-fund && exit 0; \
echo "npm ci: ошибка сети, повтор через $((i * 15)) сек..."; \
sleep $((i * 15)); \
done; \
echo "npm ci: все попытки исчерпаны"; \
exit 1
COPY apps ./apps
COPY shared ./shared
COPY tsconfig.base.json ./
ENV DATABASE_URL="postgresql://lendry:lendry_password@postgres:5432/lendry_id?schema=public"
ENV JWT_ACCESS_SECRET="docker-access-secret"
ENV JWT_REFRESH_SECRET="docker-refresh-secret"
ENV DATA_ENCRYPTION_KEY="docker-data-encryption-secret-change-me"
ENV REDIS_URL="redis://redis:6379"
ENV GRPC_URL="0.0.0.0:50051"
ENV HTTP_PORT="3001"
RUN npm --workspace @lendry/sso-core run prisma:generate \
&& npm --workspace @lendry/sso-core run proto:generate \
&& npm --workspace @lendry/sso-core run build
EXPOSE 3001 50051
CMD ["sh", "-c", "npm --workspace @lendry/sso-core run prisma:push && node apps/sso-core/dist/main.js"]