diff --git a/docker-compose.yml b/docker-compose.yml index ace6be8..d30c466 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,10 +16,25 @@ services: - postgres command: ["/api"] + cron: + build: . + environment: + - REDIS_ADDR=redis:6379 + - POSTGRES_DATABASE=trip_planner + - POSTGRES_USER=trip_planner + - POSTGRES_PASSWORD=trip_planner + - POSTGRES_HOST=postgres + depends_on: + - redis + - postgres + command: ["/cron"] + redis: image: redis:7-alpine ports: - "6379:6379" + volumes: + - redis_data:/data postgres: image: postgres:15-alpine @@ -32,5 +47,12 @@ services: volumes: - postgres_data:/var/lib/postgresql/data + watchtower: + image: nickfedor/watchtower:latest + volumes: + - /var/run/docker.sock:/var/run/docker.sock + command: --interval 60 --cleanup travel-api + volumes: - postgres_data: \ No newline at end of file + postgres_data: + redis_data: \ No newline at end of file diff --git a/docs/plans/2026-08-18-implement-deployment-infrastructure.md b/docs/plans/2026-08-18-implement-deployment-infrastructure.md index 40c4e72..93aebb2 100644 --- a/docs/plans/2026-08-18-implement-deployment-infrastructure.md +++ b/docs/plans/2026-08-18-implement-deployment-infrastructure.md @@ -60,10 +60,10 @@ - [x] verify multi-stage structure produces minimal runtime image (27.1MB) ### Task 2: Update docker-compose.yml -- [ ] add `cron` service (Go cron binary, depends_on: postgres, redis) -- [ ] add `watchtower` service (nickfedor/watchtower image, volume for docker.sock, command for cleanup) -- [ ] add `redis_data` volume to volumes section -- [ ] verify docker-compose.yml syntax with `docker-compose config` +- [x] add `cron` service (Go cron binary, depends_on: postgres, redis) +- [x] add `watchtower` service (nickfedor/watchtower image, volume for docker.sock, command for cleanup) +- [x] add `redis_data` volume to volumes section +- [x] verify docker-compose.yml syntax with `docker-compose config` ### Task 3: Create Gitea Actions CI/CD Workflow - [ ] create `.gitea/workflows/deploy.yml` file