80 lines
2.0 KiB
YAML
80 lines
2.0 KiB
YAML
services:
|
|
dev:
|
|
build:
|
|
args:
|
|
NODE_VERSION: '20'
|
|
context: .
|
|
target: dev
|
|
environment:
|
|
- NODE_ENV=development
|
|
- PORT=${DEV_PORT_1:-3000}
|
|
- BACKEND_PORT=${DEV_PORT_2:-5000}
|
|
ports:
|
|
- ${DEV_PORT_1:-3000}:3000
|
|
- ${DEV_PORT_2:-5000}:5000
|
|
- 9229:9229
|
|
volumes:
|
|
- .:/app:cached
|
|
- node_modules:/app/node_modules
|
|
- npm-cache:/root/.npm
|
|
- ~/.gitconfig:/root/.gitconfig
|
|
- ~/.ssh:/root/.ssh
|
|
|
|
owl-db:
|
|
image: postgres:16-alpine
|
|
container_name: owl-stream-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: owl_stream
|
|
POSTGRES_USER: owl_user
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD:-owl_pass_change_me}
|
|
volumes:
|
|
- owl_pg_data:/var/lib/postgresql/data
|
|
ports:
|
|
- "127.0.0.1:5433:5432"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U owl_user -d owl_stream"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
owl-backend:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
container_name: owl-stream-backend
|
|
restart: unless-stopped
|
|
depends_on:
|
|
owl-db:
|
|
condition: service_healthy
|
|
environment:
|
|
DATABASE_URL: postgresql://owl_user:${DB_PASSWORD:-owl_pass_change_me}@owl-db:5432/owl_stream
|
|
JWT_SECRET: ${JWT_SECRET:-change-me-to-random-secret}
|
|
PORT: 3020
|
|
HOST: 0.0.0.0
|
|
ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-http://localhost:3000}
|
|
ports:
|
|
- "127.0.0.1:3020:3020"
|
|
- "172.18.0.1:3020:3020"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "wget -qO- http://localhost:3020/api/health || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
volumes:
|
|
node_modules: {}
|
|
npm-cache: {}
|
|
pip-cache: {}
|
|
owl_pg_data: {}
|