mirror of
https://github.com/spliit-app/spliit.git
synced 2025-12-06 01:19:29 +01:00
50 lines
1.2 KiB
Docker
50 lines
1.2 KiB
Docker
FROM node:21-alpine AS base
|
|
|
|
WORKDIR /usr/app
|
|
COPY ./package.json \
|
|
./package-lock.json \
|
|
./next.config.mjs \
|
|
./tsconfig.json \
|
|
./reset.d.ts \
|
|
./tailwind.config.js \
|
|
./postcss.config.js ./
|
|
COPY ./scripts ./scripts
|
|
COPY ./prisma ./prisma
|
|
|
|
RUN apk add --no-cache openssl && \
|
|
npm ci --ignore-scripts && \
|
|
npx prisma generate
|
|
|
|
COPY ./src ./src
|
|
COPY ./messages ./messages
|
|
|
|
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 /usr/app/next.config.mjs ./
|
|
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 /usr/app/next.config.mjs ./
|
|
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"]
|