From 18a15dd4bbf92e633c2a64f91e206374b716f6a2 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Tue, 9 May 2023 10:02:25 +0300 Subject: [PATCH] add docker compose --- .gitignore | 37 ++++++++++++++++++++++++++ docker-compose.dev.yml | 60 ++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 52 ++++++++++++++++++++++++++++++++++++ package.json | 20 ++++++++++++++ 4 files changed, 169 insertions(+) create mode 100644 .gitignore create mode 100644 docker-compose.dev.yml create mode 100644 docker-compose.yml create mode 100644 package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b167e2d --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts +.idea diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..bc8ef26 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,60 @@ +version: '3' + +services: + backend: + image: arkids-main-backend:development + build: + context: ./arkids-main-app-backend + dockerfile: ./configs/Dockerfile.dev + container_name: arkids-main-backend-development + restart: unless-stopped + command: yarn dev + stdin_open: true + tty: true + ports: + - '5000:5000' + volumes: + - ./arkids-main-app-backend/static:/app-backend/static + - ./arkids-main-app-backend/src:/app-backend/src + networks: + - arkids-network + + frontend: + image: arkids-main-frontend:development + build: + context: ./arkids-main-app-frontend + dockerfile: ./configs/Dockerfile.dev + container_name: arkids-main-frontend-development + restart: unless-stopped + command: yarn dev + stdin_open: true + tty: true + ports: + - '3000:3000' + volumes: + - ./arkids-main-app-frontend/public:/app-front/public + - ./arkids-main-app-frontend/src:/app-front/src + networks: + - arkids-network + depends_on: + - backend + environment: + BACKEND_API_HOST: 'arkids-main-backend-development' + BACKEND_API_PORT: 5000 + + nginx: + image: nginx:stable-alpine + container_name: arkids-nginx-development + ports: + - "80:80" + volumes: + - ./arkids-nginx/configs/nginx.conf.dev:/etc/nginx/conf.d/default.conf + networks: + - arkids-network + depends_on: + - backend + - frontend + +networks: + arkids-network: + driver: bridge diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..484dd3e --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,52 @@ +version: '3' + +services: + backend: + image: arkids-main-backend:0.1.0 + build: + context: ./arkids-main-app-backend + dockerfile: ./configs/Dockerfile.prod + container_name: arkids-main-backend-production + restart: unless-stopped + command: yarn start + ports: + - '5000:5000' + networks: + - arkids-network + + frontend: + image: arkids-main-frontend:0.1.0 + build: + context: ./arkids-main-app-frontend + dockerfile: ./configs/Dockerfile.prod + container_name: arkids-main-frontend-production + restart: unless-stopped + command: > + sh -c "yarn build && + yarn start" + ports: + - '3000:3000' + networks: + - arkids-network + depends_on: + - backend + environment: + BACKEND_API_HOST: 'arkids-main-backend-production' + BACKEND_API_PORT: 5000 + + nginx: + image: nginx:stable-alpine + container_name: arkids-nginx-production + ports: + - "80:80" + volumes: + - ./arkids-nginx/configs/nginx.conf.prod:/etc/nginx/conf.d/default.conf + networks: + - arkids-network + depends_on: + - backend + - frontend + +networks: + arkids-network: + driver: bridge diff --git a/package.json b/package.json new file mode 100644 index 0000000..4931143 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "arkids-main-app", + "version": "1.0.0", + "main": "index.js", + "author": "Sergey Krylov ", + "license": "MIT", + "scripts": { + "dev:backend": "cd ./arkids-main-app-backend && yarn dev", + "start:backend": "cd ./arkids-main-app-backend && yarn start", + "dev:frontend": "cd ./arkids-main-app-frontend && yarn dev", + "build:frontend": "cd ./arkids-main-app-frontend && yarn build", + "start:frontend": "cd ./arkids-main-app-frontend && yarn start", + "docker:start:dev": "docker compose -f docker-compose.dev.yml -p arkids-main-dev up --abort-on-container-exit --build", + "docker:stop:dev": "docker compose -p arkids-main-dev down", + "docker:start:prod": "docker compose -p arkids-main-app-prod up -d --build", + "docker:stop:prod": "docker compose -p arkids-main-app-prod down", + "docker:update:frontend": "docker compose -p arkids-main-app-prod up -d --no-deps --build frontend", + "docker:update:backend": "docker compose -p arkids-main-app-prod up -d --no-deps --build backend" + } +}