magicui
/
dev.Dockerfile
40 строк · 1.2 Кб
1FROM node:20-alpine
2
3ARG DATABASE_URL
4ARG NEXTAUTH_SECRET
5ARG NEXTAUTH_URL
6ARG NEXT_PUBLIC_APP_URL
7ARG RESEND_API_KEY
8ARG STRIPE_API_KEY
9ARG NEXT_PUBLIC_STRIPE_PAYMENT_LINK
10ARG NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY_LIVE
11ARG NODE_ENV
12ARG SERVER_URL
13ARG STRIPE_SECRET_KEY_LIVE
14ARG STRIPE_WEBHOOK_SECRET
15
16WORKDIR /app
17
18# Install dependencies based on the preferred package manager
19COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
20RUN \
21if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
22elif [ -f package-lock.json ]; then npm ci; \
23elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i; \
24# Allow install without lockfile, so example works even without Node.js installed locally
25else echo "Warning: Lockfile not found. It is recommended to commit lockfiles to version control." && yarn install; \
26fi
27
28COPY . .
29COPY public ./public
30COPY next.config.js .
31COPY tsconfig.json .
32RUN npx prisma generate
33
34# Start Next.js in development mode based on the preferred package manager
35CMD \
36if [ -f yarn.lock ]; then yarn dev; \
37elif [ -f package-lock.json ]; then npm run dev; \
38elif [ -f pnpm-lock.yaml ]; then pnpm dev; \
39else npm run dev; \
40fi