50 lines
1.3 KiB
YAML
50 lines
1.3 KiB
YAML
services:
|
|
backend:
|
|
build:
|
|
context: backend
|
|
dockerfile: Containerfile
|
|
volumes:
|
|
- ./.data:/app/data
|
|
- ../config.yaml:/app/config.yaml:ro
|
|
- ./backend/app:/app/app
|
|
environment:
|
|
- APP_ENV=production
|
|
- LOG_LEVEL=info
|
|
- DB_PATH=/app/data
|
|
- SMTP_HOST=mailpit
|
|
- SMTP_PORT=1025
|
|
restart: unless-stopped
|
|
command: uvicorn app.main:app --host 0.0.0.0 --port 5000 --reload
|
|
|
|
frontend:
|
|
build:
|
|
context: frontend
|
|
dockerfile: Containerfile
|
|
target: dev
|
|
volumes:
|
|
- ./frontend/src:/app/src
|
|
- ./frontend/public:/app/public
|
|
- ./frontend/index.html:/app/index.html
|
|
- ./frontend/vite.config.ts:/app/vite.config.ts
|
|
- ./frontend/tsconfig.json:/app/tsconfig.json
|
|
- ./frontend/tsconfig.node.json:/app/tsconfig.node.json
|
|
- /app/node_modules # Reset node_modules by running with '--renew-anon-volumes'
|
|
command: npm run dev -- --host 0.0.0.0 --port 8000
|
|
|
|
mailpit:
|
|
image: axllent/mailpit:latest
|
|
container_name: lunchtime-mailpit
|
|
ports:
|
|
- "8025:8025"
|
|
restart: unless-stopped
|
|
|
|
nginx:
|
|
image: nginx:alpine
|
|
ports:
|
|
- "8080:8080"
|
|
volumes:
|
|
- ../nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
|
depends_on:
|
|
- backend
|
|
- frontend
|
|
restart: unless-stopped |