-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathDockerfile
More file actions
42 lines (32 loc) · 1.11 KB
/
Dockerfile
File metadata and controls
42 lines (32 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
FROM node:22-alpine AS base
WORKDIR /app
# install dependencies
COPY package.json ./pnpm-lock.yaml ./pnpm-workspace.yaml ./
RUN corepack enable && corepack install
FROM base AS build-deps
RUN FORCE_COLOR=true pnpm install --frozen-lockfile
FROM base AS prod-deps
RUN FORCE_COLOR=true pnpm install --frozen-lockfile --prod
# build the app
FROM build-deps AS build
COPY . .
ARG ZANE_DOMAINS
ARG VERIFICATION_EMAIL_FROM
ARG DATABASE_URL
ARG TEMPLATE_API_HOST=https://templates.zaneops.dev
ARG PRIVATE_TEMPLATE_API_HOST=https://templates.zaneops.dev
ENV TEMPLATE_API_HOST=${TEMPLATE_API_HOST}
ENV PRIVATE_TEMPLATE_API_HOST=${PRIVATE_TEMPLATE_API_HOST}
ENV DATABASE_URL=${DATABASE_URL}
ENV ZANE_DOMAINS=${ZANE_DOMAINS}
ENV VERIFICATION_EMAIL_FROM=${VERIFICATION_EMAIL_FROM}
RUN --mount=type=cache,target=/app/.astro FORCE_COLOR=true pnpm run build
RUN --mount=type=cache,target=/app/.astro FORCE_COLOR=true pnpm run db:migrate
FROM base AS runtime
COPY --from=prod-deps /app/node_modules ./node_modules
COPY --from=build /app/dist ./dist
ENV HOST=0.0.0.0
ENV PORT=3000
EXPOSE 3000
USER node
CMD ["node", "./dist/server/entry.mjs"]