82 lines
2.3 KiB
YAML
82 lines
2.3 KiB
YAML
name: crm-libredesk
|
||
|
||
# 一套独立的 LibreDesk 实例:自带 Postgres/Redis,端口与旧 crm 栈隔离。
|
||
# - LibreDesk : http://localhost:9000
|
||
# - Postgres : 127.0.0.1:5433(旧栈是 5432)
|
||
# - Redis : 127.0.0.1:6380(旧栈是 6379)
|
||
# Tools 服务跑在宿主机 :4010(见 README),LibreDesk 通过 host.docker.internal 访问。
|
||
|
||
services:
|
||
app:
|
||
image: ${LIBREDESK_IMAGE:-libredesk/libredesk:latest}
|
||
container_name: libredesk_app
|
||
restart: unless-stopped
|
||
ports:
|
||
- "9000:9000"
|
||
extra_hosts:
|
||
- "host.docker.internal:host-gateway"
|
||
environment:
|
||
LIBREDESK_SYSTEM_USER_PASSWORD: ${LIBREDESK_SYSTEM_USER_PASSWORD:-}
|
||
networks:
|
||
- libredesk
|
||
depends_on:
|
||
db:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_healthy
|
||
volumes:
|
||
- ./uploads:/libredesk/uploads:rw
|
||
- ./config/config.toml:/libredesk/config.toml:ro
|
||
command:
|
||
- sh
|
||
- -c
|
||
- >-
|
||
./libredesk --install --idempotent-install --yes --config /libredesk/config.toml &&
|
||
./libredesk --upgrade --yes --config /libredesk/config.toml &&
|
||
./libredesk --config /libredesk/config.toml
|
||
|
||
db:
|
||
image: ${POSTGRES_IMAGE:-pgvector/pgvector:pg18}
|
||
container_name: libredesk_db
|
||
restart: unless-stopped
|
||
networks:
|
||
- libredesk
|
||
ports:
|
||
# 只绑本机,避免与旧栈 5432 冲突
|
||
- "127.0.0.1:5433:5432"
|
||
environment:
|
||
POSTGRES_USER: ${POSTGRES_USER:-libredesk}
|
||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-libredesk}
|
||
POSTGRES_DB: ${POSTGRES_DB:-libredesk}
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-libredesk} -d ${POSTGRES_DB:-libredesk}"]
|
||
interval: 5s
|
||
timeout: 5s
|
||
retries: 12
|
||
volumes:
|
||
# PG18 镜像要求挂载 /var/lib/postgresql(数据在子目录 18/docker)
|
||
- postgres-data:/var/lib/postgresql
|
||
|
||
redis:
|
||
image: ${REDIS_IMAGE:-redis:7-alpine}
|
||
container_name: libredesk_redis
|
||
restart: unless-stopped
|
||
networks:
|
||
- libredesk
|
||
ports:
|
||
- "127.0.0.1:6380:6379"
|
||
healthcheck:
|
||
test: ["CMD", "redis-cli", "ping"]
|
||
interval: 5s
|
||
timeout: 3s
|
||
retries: 12
|
||
volumes:
|
||
- redis-data:/data
|
||
|
||
networks:
|
||
libredesk:
|
||
|
||
volumes:
|
||
postgres-data:
|
||
redis-data:
|