How to use Docker with Refine, or any example if possible so that I can refer to it.
Wanted to know how to use Docker with Refine, or any example if possible so that I can refer to it. Because the image I'm able to generate as of now around 1.1GiB in size which is not optimal.
Please find below my existing Dockerfile.
FROM node:18-alpine AS base
WORKDIR /app
RUN \
if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
elif [ -f package-lock.json ]; then npm install --omit=dev; \
elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i --frozen-lockfile; \
else echo "Lockfile not found." && exit 1; \
fi
FROM base AS dev
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build
WORKDIR /app
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
USER nextjsCMD ["node", "server.js"]
Please find below my existing Dockerfile.
FROM node:18-alpine AS base
Install dependencies only when needed
FROM base AS depsCheck https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compatWORKDIR /app
Install dependencies based on the preferred package manager
COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./RUN \
if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
elif [ -f package-lock.json ]; then npm install --omit=dev; \
elif [ -f pnpm-lock.yaml ]; then yarn global add pnpm && pnpm i --frozen-lockfile; \
else echo "Lockfile not found." && exit 1; \
fi
FROM base AS dev
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
Rebuild the source code only when needed
FROM base AS builderWORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
Next.js collects completely anonymous telemetry data about general usage.
Learn more here: https://nextjs.org/telemetry
Uncomment the following line in case you want to disable telemetry during the build.
ENV NEXT_TELEMETRY_DISABLED 1RUN npm run build
If using npm comment out above and use below instead
RUN npm run build
Production image, copy all the files and run next
FROM base AS runnerWORKDIR /app
Uncomment the following line in case you want to disable telemetry during runtime.
ENV NEXT_TELEMETRY_DISABLED 1RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder /app/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
USER nextjsCMD ["node", "server.js"]
Next.js by Vercel is the React framework for production
GitHub
Official Docker Image for Node.js :whale: :turtle: :rocket: - GitHub - nodejs/docker-node at b4117f9333da4138b03a546ec926ef50a31506c3
