Files
fonrey/docker-compose.yml
ishenwei 94d160223d feat: complete Phase 3 scaffolding (templates, static, Docker, per-app skeletons)
- Per-app skeleton completion: property/client/setting now have services/,
  tasks.py, views.py, urls.py, serializers.py, templates/<app>/, tests/
- admin.py added to all 10 apps (per spec §2.108 / §17.3)
- Top-level templates/: base.html, layouts/{app,auth}.html, components/
  {topbar,sidebar,pagination,toast,modal,empty-state}.html, errors/
  {403,404,500}.html
- static/: css/main.css (Tailwind entry), js/main.js (HTMX toast +
  CSRF wiring per §7.4), vendor/.gitkeep
- tailwind.config.js: Primary teal + neutral slate + semantic colors,
  Inter font stack, z-60/z-70, shadow-xs, slide-in-right animation per
  UI_SYSTEM §2.7/§10.1
- package.json: tailwindcss-only build/watch
- Dockerfile + docker-compose.yml (6 services: web/db/redis/celery/
  celery-beat/tailwind) + docker-compose.prod.yml + Makefile
- tests/ root: conftest.py with TenantClient fixture per §720,
  integration/{property,client,release}/, e2e/, schemathesis skeleton
- Removed empty apps/tenant/models/ (tenant uses models.py per §17.1)

Validated: manage.py check passes; tree matches spec §2 exactly.
2026-04-29 17:45:22 +08:00

79 lines
1.3 KiB
YAML

services:
web:
build: .
command: uvicorn config.asgi:application --host 0.0.0.0 --port 8000 --reload
ports:
- "8000:8000"
env_file: .env
volumes:
- .:/app
depends_on:
- db
- redis
networks:
- fonrey_net
db:
image: postgres:16-alpine
ports:
- "5432:5432"
env_file: .env
environment:
POSTGRES_DB: ${DB_NAME}
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- fonrey_db_data:/var/lib/postgresql/data
networks:
- fonrey_net
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- fonrey_redis_data:/data
networks:
- fonrey_net
celery:
build: .
command: celery -A config worker -l info
env_file: .env
volumes:
- .:/app
depends_on:
- db
- redis
networks:
- fonrey_net
celery-beat:
build: .
command: celery -A config beat -l info
env_file: .env
volumes:
- .:/app
depends_on:
- db
- redis
networks:
- fonrey_net
tailwind:
image: node:20-alpine
working_dir: /app
command: sh -c "npm install && npm run watch"
volumes:
- .:/app
networks:
- fonrey_net
volumes:
fonrey_db_data:
fonrey_redis_data:
networks:
fonrey_net:
driver: bridge