52 lines
1.3 KiB
Docker
52 lines
1.3 KiB
Docker
FROM node:20.11.1-alpine AS base
|
|
ENV SKIP_ENV_VALIDATION="true"
|
|
ENV DOCKER_OUTPUT=1
|
|
ENV NEXT_TELEMETRY_DISABLED 1
|
|
|
|
RUN apk add --no-cache libc6-compat
|
|
RUN apk update
|
|
|
|
WORKDIR /app
|
|
RUN npm i -g pnpm@8.9
|
|
RUN ls
|
|
COPY package.json pnpm-lock.yaml ./
|
|
|
|
RUN pnpm install
|
|
|
|
COPY . .
|
|
RUN pnpm generate
|
|
RUN pnpm build
|
|
|
|
FROM node:20-alpine3.19 as release
|
|
WORKDIR /app
|
|
RUN npm i -g pnpm@8.9
|
|
|
|
RUN apk add --no-cache libc6-compat
|
|
RUN apk update
|
|
|
|
|
|
COPY --from=base /app/next.config.js .
|
|
COPY --from=base /app/package.json .
|
|
COPY --from=base /app/pnpm-lock.yaml .
|
|
|
|
COPY --from=base /app/.next/standalone ./
|
|
COPY --from=base /app/.next/static ./.next/static
|
|
COPY --from=base /app/public ./public
|
|
|
|
COPY --from=base /app/prisma/schema.prisma ./prisma/schema.prisma
|
|
COPY --from=base /app/prisma/migrations ./prisma/migrations
|
|
COPY --from=base /app/node_modules/prisma ./node_modules/prisma
|
|
COPY --from=base /app/node_modules/@prisma ./node_modules/@prisma
|
|
COPY --from=base /app/node_modules/sharp ./node_modules/sharp
|
|
|
|
# Symlink the prisma binary
|
|
RUN mkdir node_modules/.bin
|
|
RUN ln -s /app/node_modules/prisma/build/index.js ./node_modules/.bin/prisma
|
|
|
|
# set this so it throws error where starting server
|
|
ENV SKIP_ENV_VALIDATION="false"
|
|
|
|
COPY ./docker/start.sh ./start.sh
|
|
|
|
CMD ["sh", "start.sh"]
|