docker-compose.yml
Rama main · réplica de lectura del repositorio original.
services:
portal:
image: lilremark/twentycrmclientportal:${PORTAL_VERSION:-2.1.1}
init: true
restart: unless-stopped
stop_grace_period: 30s
env_file: ${PORTAL_ENV_FILE:-.env}
environment:
DATABASE_URL: postgres://portal:${POSTGRES_PASSWORD:-portal}@postgres:5432/portal
HOSTNAME: 0.0.0.0
PORT: 3000
depends_on:
postgres:
condition: service_healthy
ports:
- "0.0.0.0:${PORTAL_PORT:-3005}:3000"
volumes:
- portal_uploads:/app/data/uploads
networks:
- frontend
- backend
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
healthcheck:
test:
[
"CMD",
"wget",
"--quiet",
"--tries=1",
"--spider",
"http://127.0.0.1:3000/health/ready",
]
interval: 30s
timeout: 5s
start_period: 20s
retries: 3
postgres:
image: postgres:17-alpine
restart: unless-stopped
stop_grace_period: 30s
environment:
POSTGRES_DB: portal
POSTGRES_USER: portal
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-portal}
volumes:
- portal_postgres:/var/lib/postgresql/data
networks:
- backend
healthcheck:
test: ["CMD-SHELL", "pg_isready -U portal -d portal"]
interval: 5s
timeout: 5s
retries: 10
networks:
frontend:
backend:
internal: true
volumes:
portal_postgres:
portal_uploads: