Skip to content

Commit

Permalink
adding docker and docker-compose
Browse files Browse the repository at this point in the history
  • Loading branch information
eltontay committed Oct 9, 2022
1 parent d0eb887 commit ee589bc
Show file tree
Hide file tree
Showing 14 changed files with 5,492 additions and 19,814 deletions.
7 changes: 5 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Dockerfile
.dockerignore
node_modules
npm-debug.log
README.md
.next
.github
.husky
.git
14 changes: 10 additions & 4 deletions .yarnclean
Original file line number Diff line number Diff line change
@@ -1,30 +1,35 @@
# test directories
__tests__

**tests**
test
tests
powered-test

# asset directories

docs
doc
website
images
assets

# examples

example
examples

# code coverage directories

coverage
.nyc_output

# build scripts

Makefile
Gulpfile.js
Gruntfile.js

# configs

appveyor.yml
circle.yml
codeship-services.yml
Expand All @@ -33,7 +38,7 @@ wercker.yml
.tern-project
.gitattributes
.editorconfig
.*ignore
.\*ignore
.eslintrc
.jshintrc
.flowconfig
Expand All @@ -42,4 +47,5 @@ wercker.yml
.travis.yml

# misc
*.md

\*.md
40 changes: 26 additions & 14 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,42 +1,54 @@
# 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
RUN apk add --update --no-cache python3 build-base gcc && ln -sf /usr/bin/python3 /usr/bin/python
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile
COPY package.json yarn.lock* ./
RUN yarn --frozen-lockfile

# Rebuild the source code only when needed
FROM node:16-alpine AS builder

WORKDIR /app

COPY --from=deps /app/node_modules ./node_modules

COPY . .

RUN yarn build
# RUN npm run build

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

ENV NODE_ENV production

RUN addgroup --system --gid 1001 bloggroup
RUN adduser --system --uid 1001 bloguser
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/public ./public
COPY --from=builder /app/package.json ./package.json

# Automatically leverage output traces to reduce image size
COPY --from=builder /app/components ./components
COPY --from=builder /app/context ./context
COPY --from=builder /app/contracts ./contracts
COPY --from=builder /app/pages ./pages
COPY --from=builder /app/styles ./styles
COPY --from=builder /app/tailwind.config.js ./tailwind.config.js
COPY --from=builder /app/postcss.config.js ./postcss.config.js

# Automatically leverage output traces to reduce image size
# https://nextjs.org/docs/advanced-features/output-file-tracing
COPY --from=builder --chown=bloguser:bloggroup /app/.next/standalone ./
COPY --from=builder --chown=bloguser:bloggroup /app/.next/static ./.next/static
COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next

USER bloguser
USER nextjs

EXPOSE 3000

ENV PORT 3000

CMD ["node", "server.js"]
# 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.
# ENV NEXT_TELEMETRY_DISABLED 1

CMD ["yarn", "start"]
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,16 @@ There are 4 main pages listed under the `./pages` directory.

#

## Deployment
## Localhost Testing

```bash
npm run dev
```

## Docker Deployment

```bash
docker-compose up --build --force-recreate
```

#
Expand Down
14 changes: 8 additions & 6 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
version: '3.9'
version: '3'

services:
festival-ticket-marketplace:
web:
build:
context: './'
networks:
- dev
context: .
dockerfile: Dockerfile
image: festival-ticket-marketplace
restart: always
ports:
- '3000:3000'
- 3000:3000
1 change: 0 additions & 1 deletion next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
const nextConfig = {
reactStrictMode: false,
swcMinify: true,
experimental: true,
};

module.exports = nextConfig;
Loading

1 comment on commit ee589bc

@vercel
Copy link

@vercel vercel bot commented on ee589bc Oct 9, 2022

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.