brf/Dockerfile
2025-11-23 21:44:01 +01:00

46 lines
1013 B
Docker

FROM node:23-alpine AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable pnpm
ARG UID=1000
ARG GID=1000
RUN apk add --no-cache git shadow
RUN groupmod -g $GID node
# this does not seem to be having full effect. eg /home/node gets 1337:1000 ownership despite group node having id 1337
RUN usermod -u $UID -g node node
USER node
RUN mkdir /home/node/startbit
RUN git config --global --add safe.directory /home/node/startbit
WORKDIR /home/node/startbit
COPY --chown=node pnpm-lock.yaml package.json ./
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
COPY --chown=node \
.env.secrets \
vite.config.js ./
# -------- development -------- #
FROM base AS development
ENV NODE_ENV=development
CMD pnpm run start:watch
# -------- production --------- #
FROM base AS production
COPY --chown=node client client
COPY --chown=node server server
ENV NODE_ENV=production
RUN pnpm run build
COPY --chown=node .git .git
CMD pnpm run start server/index.ts