From 11a751b2bc7d37506548f4908a37fe759b5fe7b2 Mon Sep 17 00:00:00 2001 From: smanylov Date: Wed, 3 Dec 2025 12:13:32 +0700 Subject: [PATCH] add docker setup --- .dockerignore | 7 +++++++ Dockerfile | 22 ++++++++++++++++++++++ README.md | 7 ++++++- docker-compose.yml | 23 +++++++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 6 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..577ac3a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +node_modules +.env +.git +.gitignore +.next +README.md +.dockerignore \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ea6f0ed --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM node:22.20.0 AS dependencies +WORKDIR /no-copy-frontend +COPY package.json package-lock.json ./ +RUN npm install + +FROM node:22.20.0 AS builder +WORKDIR /no-copy-frontend +COPY . . +COPY --from=dependencies /no-copy-frontend/node_modules ./node_modules +RUN npm run build + +FROM node:22.20.0 AS runner +WORKDIR /no-copy-frontend +ENV NODE_ENV=production + +COPY --from=builder /no-copy-frontend/public ./public +COPY --from=builder /no-copy-frontend/package.json ./package.json +COPY --from=builder /no-copy-frontend/.next ./.next +COPY --from=builder /no-copy-frontend/node_modules ./node_modules + +EXPOSE 2999 +CMD ["npm", "start"] \ No newline at end of file diff --git a/README.md b/README.md index b0fb9d1..af79961 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,9 @@ npm run dev ``` -Open [http://localhost:2999](http://localhost:2999) \ No newline at end of file +Open [http://localhost:2999](http://localhost:2999) + + +## Docker + +docker run -d -p 2998:2999 --name no-copy-frontend no-copy-frontend \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b492177 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,23 @@ +version: '3.8' + +services: + frontend: + container_name: no-copy-frontend + build: + context: . + dockerfile: Dockerfile + ports: + - "2998:2999" + environment: + - NODE_ENV=production + - PORT=2999 + volumes: + - ./public:/app/public + - ./package.json:/app/package.json + restart: unless-stopped + networks: + - no-copy-network + +networks: + no-copy-network: + driver: bridge diff --git a/package-lock.json b/package-lock.json index 2cc6f16..c3a6506 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "no-copy", + "name": "no-copy-frontend", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "no-copy", + "name": "no-copy-frontend", "version": "0.1.0", "dependencies": { "@tailwindcss/postcss": "^4.1.17", diff --git a/package.json b/package.json index 62b717c..0b8e824 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "no-copy", + "name": "no-copy-frontend", "version": "0.1.0", "private": true, "scripts": {