FROM node:22.12.0-alpine
# corepack is upgraded before anything else: the version bundled with Node is
# older than the registry's current signing keys, so it fails to verify any
# pnpm a project pins through package.json "packageManager".
RUN apk add --no-cache bash git libc6-compat postgresql-client \
&& npm install -g corepack@latest \
&& corepack enable \
&& corepack prepare pnpm@9.15.4 --activate
# The project's own pnpm is fetched on demand; never stop to ask about it.
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
ENV PNPM_HOME=/pnpm
ENV PATH=$PNPM_HOME:$PATH
ENV PNPM_STORE_DIR=/pnpm-store
WORKDIR /app
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
EXPOSE 8000
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["serve"]