add docker compose

This commit is contained in:
Sergey Krylov 2023-05-09 10:02:25 +03:00
commit 18a15dd4bb
4 changed files with 169 additions and 0 deletions

37
.gitignore vendored Normal file
View File

@ -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

60
docker-compose.dev.yml Normal file
View File

@ -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

52
docker-compose.yml Normal file
View File

@ -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

20
package.json Normal file
View File

@ -0,0 +1,20 @@
{
"name": "arkids-main-app",
"version": "1.0.0",
"main": "index.js",
"author": "Sergey Krylov <s.krylov@aqsi.ru>",
"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"
}
}