Files
gravl/docker-compose.yml
clawd 53f4df6e3c feat(07-02): Add CI/CD deployment scripts
- scripts/deploy.sh: Full deploy flow with fresh builds (--no-cache)
- scripts/build-check.sh: Pre-flight staleness check
- Docker labels for build tracking (git commit + timestamp)
- Prevents stale container bug from recurring
2026-03-03 17:20:23 +01:00

58 lines
1.7 KiB
YAML

services:
gravl-backend:
container_name: gravl-backend
build:
context: ./backend
dockerfile: Dockerfile
args:
GIT_COMMIT: ${GIT_COMMIT:-unknown}
BUILD_DATE: ${BUILD_DATE:-unknown}
restart: unless-stopped
environment:
- DB_HOST=postgres
- DB_PORT=5432
- DB_USER=postgres
- DB_PASSWORD=homelab_postgres_2026
- DB_NAME=gravl
networks:
- proxy
- homelab
expose:
- "3001"
labels:
- "org.opencontainers.image.revision=${GIT_COMMIT:-unknown}"
- "org.opencontainers.image.created=${BUILD_DATE:-unknown}"
gravl-frontend:
container_name: gravl-frontend
build:
context: ./frontend
dockerfile: Dockerfile
args:
GIT_COMMIT: ${GIT_COMMIT:-unknown}
BUILD_DATE: ${BUILD_DATE:-unknown}
restart: unless-stopped
depends_on:
- gravl-backend
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.gravl.rule=Host(`gravl.homelab.local`)"
- "traefik.http.routers.gravl.entrypoints=web"
- "traefik.http.routers.gravl.service=gravl"
- "traefik.http.routers.gravl-secure.rule=Host(`gravl.homelab.local`)"
- "traefik.http.routers.gravl-secure.entrypoints=websecure"
- "traefik.http.routers.gravl-secure.tls=true"
- "traefik.http.routers.gravl-secure.service=gravl"
- "traefik.http.services.gravl.loadbalancer.server.port=80"
- "org.opencontainers.image.revision=${GIT_COMMIT:-unknown}"
- "org.opencontainers.image.created=${BUILD_DATE:-unknown}"
networks:
proxy:
external: true
homelab:
name: compose_homelab
external: true