Skip to content

Commit

Permalink
fix: config dockerfile (#13)
Browse files Browse the repository at this point in the history
* feat: add table component

* fix: bug parsing props field component

* fix: config dockerfile

* fix: script deploy & release
  • Loading branch information
masb0ymas authored Sep 4, 2021
1 parent 80c5b6b commit e32748f
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 24 deletions.
6 changes: 5 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
Dockerfile
.dockerignore
node_modules

npm-debug.log
README.md
.next
50 changes: 33 additions & 17 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,44 +1,60 @@
# Install dependencies only when needed
FROM node:alpine AS deps
FROM node:14-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
RUN apk add --no-cache --virtual .gyp \
python \
make \
g++
RUN apk add --update --no-cache curl py-pip
RUN apk add --no-cache make python2 g++ gcc libgcc libstdc++
RUN npm install --quiet node-gyp -g

WORKDIR /app
COPY package*.json ./
RUN npm install

COPY package.json ./

RUN yarn install --frozen-lockfile

# Rebuild the source code only when needed
FROM node:alpine AS builder
FROM node:14-alpine AS builder
WORKDIR /app

RUN export NODE_OPTIONS=\"--max_old_space_size=4096\"

COPY . .

RUN cp .env.example .env

COPY --from=deps /app/node_modules ./node_modules
RUN npm run build
RUN yarn build && yarn install --production --ignore-scripts --prefer-offline

# Production image, copy all the files and run next
FROM node:alpine AS runner
FROM node:14-alpine AS runner
WORKDIR /app

ENV NODE_ENV production

RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001

# 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/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next ./.next
COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./package.json
COPY --from=builder /app/src ./src
COPY --from=builder /app/webpack-extends ./webpack-extends
COPY --from=builder /app/.env ./.env
COPY --from=builder /app/.babelrc ./.babelrc
COPY --from=builder /app/next-env.d.ts ./next-env.d.ts
COPY --from=builder /app/next.config.js ./next.config.js

RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001
RUN chown -R nextjs:nodejs /app/.next
USER nextjs

EXPOSE 3000

# 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.
# RUN npx next telemetry disable
# ENV NEXT_TELEMETRY_DISABLED 1

CMD ["node_modules/.bin/next", "start"]
CMD ["yarn", "start"]
3 changes: 2 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
version: '3'
version: '3.8'
services:
web:
build:
context: .
dockerfile: Dockerfile
container_name: my-next-js-app
restart: always
working_dir: /app
volumes:
- ./:/app
- /app/public
Expand Down
11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@
"test:eslint": "eslint --ext .ts,.tsx ./src",
"type-check:watch": "npm run test:types -- --watch",
"analyze": "cross-env-shell NODE_OPTIONS=\"-r esm\" ANALYZE=true next build",
"server-build": "npm install && npm run build && pm2 reload your_pm2_name",
"start": "next start -p 5555",
"deploy": "yarn && yarn build && pm2 reload ecosystem.config.js",
"start": "next start -p 3000",
"release": "standard-version",
"release:minor": "standard-version --release-as minor",
"release:patch": "standard-version --release-as patch",
"release:major": "standard-version --release-as major",
"release:pre": "npm run release -- --prerelease",
"release:patch": "npm run release -- --release-as patch",
"release:minor": "npm run release -- --release-as minor",
"release:major": "npm run release -- --release-as major",
"storybook": "start-storybook -p 6006",
"build-storybook": "build-storybook"
},
Expand Down

1 comment on commit e32748f

@vercel
Copy link

@vercel vercel bot commented on e32748f Sep 4, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.