mirror of
https://github.com/spliit-app/spliit.git
synced 2025-12-06 01:19:29 +01:00
* Move prisma to runtime dependencies * Optimize Dockerfile and build script * Fix: remove mention of generated next-env.d.ts in Dockerfile * Add missing reset.d.ts file to Dockerfile * Remove compression steps from Dockerfile and entrypoint script * Add an env file with mocked env vars added for Docker production builds * Use server actions to get runtime env vars * Refactor types and names * Rollback serverActions, use parsed Zod object for runtime env * Reintroduce featureFlags object to avoid passing secret envs to the frontend * Improve string to boolean coercion Co-authored-by: Sebastien Castiel <sebastien@castiel.me> * Run prettier autoformat * Fix type issue, rename function to match behaviour better --------- Co-authored-by: Lauri Vuorela <lauri.vuorela@gmail.com> Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
48 lines
1.1 KiB
Docker
48 lines
1.1 KiB
Docker
FROM node:21-alpine as base
|
|
|
|
WORKDIR /usr/app
|
|
COPY ./package.json \
|
|
./package-lock.json \
|
|
./next.config.js \
|
|
./tsconfig.json \
|
|
./reset.d.ts \
|
|
./tailwind.config.js \
|
|
./postcss.config.js ./
|
|
COPY ./scripts ./scripts
|
|
COPY ./prisma ./prisma
|
|
COPY ./src ./src
|
|
|
|
RUN apk add --no-cache openssl && \
|
|
npm ci --ignore-scripts && \
|
|
npx prisma generate
|
|
|
|
ENV NEXT_TELEMETRY_DISABLED=1
|
|
|
|
COPY scripts/build.env .env
|
|
RUN npm run build
|
|
|
|
RUN rm -r .next/cache
|
|
|
|
FROM node:21-alpine as runtime-deps
|
|
|
|
WORKDIR /usr/app
|
|
COPY --from=base /usr/app/package.json /usr/app/package-lock.json ./
|
|
COPY --from=base /usr/app/prisma ./prisma
|
|
|
|
RUN npm ci --omit=dev --omit=optional --ignore-scripts && \
|
|
npx prisma generate
|
|
|
|
FROM node:21-alpine as runner
|
|
|
|
EXPOSE 3000/tcp
|
|
WORKDIR /usr/app
|
|
|
|
COPY --from=base /usr/app/package.json /usr/app/package-lock.json ./
|
|
COPY --from=runtime-deps /usr/app/node_modules ./node_modules
|
|
COPY ./public ./public
|
|
COPY ./scripts ./scripts
|
|
COPY --from=base /usr/app/prisma ./prisma
|
|
COPY --from=base /usr/app/.next ./.next
|
|
|
|
ENTRYPOINT ["/bin/sh", "/usr/app/scripts/container-entrypoint.sh"]
|