Browse Source

before using dockerfile official

Signed-off-by: rizqevo <rizqevo@hotmail.com>
rizqevo 3 years ago
parent
commit
488883a944
3 changed files with 47 additions and 1707 deletions
  1. 47 13
      dockerfile
  2. 0 916
      report.20211216.060618.904.0.001.json
  3. 0 778
      report.20220204.145024.37532.0.001.json

+ 47 - 13
dockerfile

@@ -1,19 +1,53 @@
-FROM node:14
+# Install dependencies only when needed
+FROM node:16-alpine AS deps
+# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
+RUN apk add --no-cache libc6-compat
+WORKDIR /app
+COPY package.json yarn.lock ./
+RUN yarn install --frozen-lockfile
 
-# Create app directory
-RUN mkdir -p /usr/src/app
-WORKDIR /usr/src/app
+# If using npm with a `package-lock.json` comment out above and use below instead
+# COPY package.json package-lock.json ./ 
+# RUN npm ci
 
-# Installing dependencies
-COPY package.json /usr/src/app
-RUN npm install
+# Rebuild the source code only when needed
+FROM node:16-alpine AS builder
+WORKDIR /app
+COPY --from=deps /app/node_modules ./node_modules
+COPY . .
 
-# Copying source files
-COPY . /usr/src/app
+# 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 1
+
+RUN yarn build
+
+# Production image, copy all the files and run next
+FROM node:16-alpine AS runner
+WORKDIR /app
+
+ENV NODE_ENV production
+# Uncomment the following line in case you want to disable telemetry during runtime.
+ENV NEXT_TELEMETRY_DISABLED 1
+
+RUN addgroup --system --gid 1001 nodejs
+RUN adduser --system --uid 1001 nextjs
+
+# You only need to copy next.config.js if you are NOT using the default configuration
+COPY --from=builder /app/next.config.js ./
+COPY --from=builder /app/public ./public
+COPY --from=builder /app/package.json ./package.json
+
+# Automatically leverage output traces to reduce image size 
+# https://nextjs.org/docs/advanced-features/output-file-tracing
+COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
+COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
+
+USER nextjs
 
-# Building app
-RUN npm run build
 EXPOSE 3000
 
-# Running the app
-CMD "npm" "run" "dev"
+ENV PORT 3000
+
+CMD ["node", "server.js"]

File diff suppressed because it is too large
+ 0 - 916
report.20211216.060618.904.0.001.json


File diff suppressed because it is too large
+ 0 - 778
report.20220204.145024.37532.0.001.json


Some files were not shown because too many files changed in this diff