Archon/docker-compose.yml
Wirasm 7428a47cfa
Improve clone URL handling and fix docker config (#4)
* Improve clone URL handling and fix docker config

- Normalize URLs by stripping trailing slashes
- Convert SSH URLs (git@github.com:) to HTTPS format
- Check if directory exists before cloning to prevent errors
- Fix container PORT env var for consistent mapping
- Update postgres volume path

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Make PORT fully configurable in Docker

Use ${PORT:-3000}:${PORT:-3000} mapping so the same PORT env var
controls both external and internal ports. This allows PORT to be
configured via .env instead of being hardcoded.

Applied to both app and app-with-db services for consistency.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-01 11:45:54 +02:00

61 lines
1.5 KiB
YAML

services:
# Use this for external databases (Supabase, Neon, etc.)
# Command: docker-compose --profile external-db up
app:
profiles: ["external-db"]
build: .
env_file: .env
ports:
- "${PORT:-3000}:${PORT:-3000}"
volumes:
- ${WORKSPACE_PATH:-./workspace}:/workspace
restart: unless-stopped
dns:
- 8.8.8.8
- 8.8.4.4
sysctls:
- net.ipv6.conf.all.disable_ipv6=1
# Use this for local Docker database
# Command: docker-compose --profile with-db up
app-with-db:
profiles: ["with-db"]
build: .
env_file: .env
environment:
# Override DATABASE_URL to use Docker service name
DATABASE_URL: postgresql://postgres:postgres@postgres:5432/remote_coding_agent
ports:
- "${PORT:-3000}:${PORT:-3000}"
volumes:
- ${WORKSPACE_PATH:-./workspace}:/workspace
restart: unless-stopped
dns:
- 8.8.8.8
- 8.8.4.4
sysctls:
- net.ipv6.conf.all.disable_ipv6=1
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:18
profiles: ["with-db"]
environment:
POSTGRES_DB: remote_coding_agent
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- postgres_data:/var/lib/postgresql
- ./migrations:/docker-entrypoint-initdb.d
ports:
- "${POSTGRES_PORT:-5432}:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
volumes:
postgres_data: