https://github.com/evavic44/nextjs-docker
A simple containerized template of a Nexjs app using docker
https://github.com/evavic44/nextjs-docker
Last synced: 2 months ago
JSON representation
A simple containerized template of a Nexjs app using docker
- Host: GitHub
- URL: https://github.com/evavic44/nextjs-docker
- Owner: Evavic44
- License: mit
- Created: 2023-12-11T15:11:05.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-11T20:04:52.000Z (almost 2 years ago)
- Last Synced: 2024-10-06T05:22:18.344Z (about 1 year ago)
- Language: TypeScript
- Size: 53.7 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Docker Setup
Steps to use docker with nextjs.
> **Note**
> This example has been optimized to work with npm only, if you're using yarn, follow the original guide: [Nexjs Docker Setup](https://github.com/vercel/next.js/blob/canary/examples/with-docker/Dockerfile)- Create a `Dockerfile` in project root.
- Configure options using the below code:```sh
FROM node:18-alpine AS base
FROM base AS deps
RUN apk add --no-cache libc6-compat
WORKDIR /appCOPY package*.json ./
RUN npm installFROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .ENV NEXT_TELEMETRY_DISABLED 1
RUN npm run build
FROM base AS runner
WORKDIR /appENV NODE_ENV production
ENV NEXT_TELEMETRY_DISABLED 1RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
COPY --from=builder /app/public ./publicRUN mkdir .next
RUN chown nextjs:nodejs .nextCOPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/staticUSER nextjs
EXPOSE 3000
ENV PORT 3000
ENV HOSTNAME "0.0.0.0"
CMD ["node", "server.js"]
```### Enable Nextjs Trace copying
```js
// nextjs.config.js
module.exports = {
output: "standalone",
};
```[Source:](https://nextjs.org/docs/app/api-reference/next-config-js/output#automatically-copying-traced-files)
### Run Docker Image
Run dockerfile using the command:
```sh
docker build -t app-name .
# example: docker build -t nextjs-docker .
```Start image in local server using
```sh
docker run -e PORT=3000 project-name# or
docker compose up --build
# example: docker run -e PORT=3000 nextjs-docker
```### Resources
- [Containerize an application](https://docs.docker.com/get-started/02_our_app/)