- Dockerfile: Node.js 20 Alpine, single-stage build - docker-compose.yml: backend + nginx, named volume for SQLite - server.js: updated for Docker (env vars for PORT/DATA_DIR) - nginx.conf: updated for Docker networking (backend hostname) - README.md: full deployment instructions
37 lines
734 B
YAML
37 lines
734 B
YAML
services:
|
|
backend:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: project-tracker-api
|
|
restart: unless-stopped
|
|
volumes:
|
|
- project-data:/app/data
|
|
environment:
|
|
- PORT=3000
|
|
- NODE_ENV=production
|
|
networks:
|
|
- project-tracker-net
|
|
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: project-tracker-nginx
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
volumes:
|
|
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- ../frontend:/usr/share/nginx/html:ro
|
|
depends_on:
|
|
- backend
|
|
networks:
|
|
- project-tracker-net
|
|
|
|
volumes:
|
|
project-data:
|
|
name: project-tracker-data
|
|
|
|
networks:
|
|
project-tracker-net:
|
|
name: project-tracker-net
|