Add Docker Hub image compose path and badges#21
Conversation
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 33 minutes and 46 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request introduces support for running the Involute stack using published Docker images. It adds new Docker Compose configurations for both standard and production environments, updates the README with usage instructions and badges, and adds helper scripts to package.json. The reviewer feedback suggests several improvements to the Docker orchestration, including adding a 'tools' profile to the CLI service to prevent unnecessary container starts, ensuring consistent healthchecks for the web service in production, and simplifying the npm scripts by removing explicit service names.
| cli: | ||
| image: ${INVOLUTE_IMAGE_REGISTRY:-docker.io}/${INVOLUTE_IMAGE_NAMESPACE:-turnkeyai}/involute-cli:${INVOLUTE_IMAGE_TAG:-latest} | ||
| depends_on: | ||
| db: | ||
| condition: service_healthy | ||
| server: | ||
| condition: service_healthy |
There was a problem hiding this comment.
The cli service is a one-off tool rather than a core part of the long-running stack. Adding a tools profile prevents it from starting and immediately exiting when running a general docker compose up -d command, keeping the stack status cleaner.
cli:
image: ${INVOLUTE_IMAGE_REGISTRY:-docker.io}/${INVOLUTE_IMAGE_NAMESPACE:-turnkeyai}/involute-cli:${INVOLUTE_IMAGE_TAG:-latest}
profiles: ["tools"]
depends_on:
db:
condition: service_healthy
server:
condition: service_healthy| web: | ||
| image: ${INVOLUTE_IMAGE_REGISTRY:-docker.io}/${INVOLUTE_IMAGE_NAMESPACE:-turnkeyai}/involute-web:${INVOLUTE_IMAGE_TAG:-latest} | ||
| environment: | ||
| INTERNAL_SERVER_ORIGIN: http://server:4200 | ||
| WEB_PROXY_AUTHORIZATION: "" | ||
| restart: unless-stopped | ||
| depends_on: | ||
| server: | ||
| condition: service_healthy |
There was a problem hiding this comment.
The web service is missing a healthcheck in the production compose file, which is inconsistent with the local docker-compose.images.yml. Adding one ensures that dependent services like Caddy only start routing traffic once Nginx is actually ready.
web:
image: ${INVOLUTE_IMAGE_REGISTRY:-docker.io}/${INVOLUTE_IMAGE_NAMESPACE:-turnkeyai}/involute-web:${INVOLUTE_IMAGE_TAG:-latest}
environment:
INTERNAL_SERVER_ORIGIN: http://server:4200
WEB_PROXY_AUTHORIZATION: ""
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:4201 >/dev/null || exit 1"]
interval: 10s
timeout: 5s
retries: 20
start_period: 10s
restart: unless-stopped
depends_on:
server:
condition: service_healthy| web: | ||
| condition: service_started |
| "compose:pull": "docker compose -f docker-compose.images.yml pull server web cli", | ||
| "compose:pull:up": "docker compose -f docker-compose.images.yml up -d db server web", | ||
| "compose:prod:pull": "docker compose --env-file .env.production -f docker-compose.prod.images.yml pull server web cli", | ||
| "compose:prod:pull:up": "docker compose --env-file .env.production -f docker-compose.prod.images.yml up -d", |
There was a problem hiding this comment.
The pull and up scripts can be simplified by removing explicit service names. docker compose pull will automatically pull all images defined in the file (including infrastructure like Postgres and Caddy), and docker compose up -d will start the core stack while respecting service profiles (e.g., skipping the cli tool if it has the tools profile).
| "compose:pull": "docker compose -f docker-compose.images.yml pull server web cli", | |
| "compose:pull:up": "docker compose -f docker-compose.images.yml up -d db server web", | |
| "compose:prod:pull": "docker compose --env-file .env.production -f docker-compose.prod.images.yml pull server web cli", | |
| "compose:prod:pull:up": "docker compose --env-file .env.production -f docker-compose.prod.images.yml up -d", | |
| "compose:pull": "docker compose -f docker-compose.images.yml pull", | |
| "compose:pull:up": "docker compose -f docker-compose.images.yml up -d", | |
| "compose:prod:pull": "docker compose --env-file .env.production -f docker-compose.prod.images.yml pull", | |
| "compose:prod:pull:up": "docker compose --env-file .env.production -f docker-compose.prod.images.yml up -d", |
Summary
Validation
Notes