FROM repo.nstart.cloud/library/node:22-alpine AS build
WORKDIR /app
COPY package.json ./
RUN corepack enable && corepack prepare pnpm@latest --activate
RUN --mount=type=cache,target=/root/.local/share/pnpm/store pnpm install --no-frozen-lockfile
COPY . .
RUN pnpm build

FROM repo.nstart.cloud/library/nginx:1.27-alpine
COPY --from=build /app/dist /usr/share/nginx/html
# Шаблон обрабатывается официальным entrypoint nginx-image:
# /docker-entrypoint.d/20-envsubst-on-templates.sh пробегает по
# /etc/nginx/templates/*.template и envsubst'ит ENV vars в /etc/nginx/conf.d/.
COPY nginx.conf /etc/nginx/templates/default.conf.template
ENV NGINX_ENVSUBST_TEMPLATE_DIR=/etc/nginx/templates \
    NGINX_ENVSUBST_TEMPLATE_SUFFIX=.template \
    NGINX_ENVSUBST_OUTPUT_DIR=/etc/nginx/conf.d
EXPOSE 80
