docker-compose.yml
Rama main · réplica de lectura del repositorio original.
services:
clirelay-init:
image: ${CLI_PROXY_IMAGE:-ghcr.io/kittors/clirelay:latest}
pull_policy: ${CLI_PROXY_PULL_POLICY:-always}
command: ["clirelay-init-env"]
environment:
CLI_PROXY_IMAGE: ${CLI_PROXY_IMAGE:-ghcr.io/kittors/clirelay:latest}
CLIRELAY_PROJECT_DIR: ${CLIRELAY_PROJECT_DIR:-${PWD:-.}}
CLIRELAY_ENV_FILE: /clirelay-deploy/.env
CLIRELAY_COMPOSE_PROJECT_NAME: ${CLIRELAY_COMPOSE_PROJECT_NAME:-clirelay}
CLIRELAY_TARGET_SERVICE: ${CLIRELAY_TARGET_SERVICE:-cli-proxy-api}
volumes:
- ${CLIRELAY_PROJECT_DIR:-${PWD:-.}}:/clirelay-deploy
restart: "no"
cli-proxy-api:
image: ${CLI_PROXY_IMAGE:-ghcr.io/kittors/clirelay:latest}
pull_policy: ${CLI_PROXY_PULL_POLICY:-always}
build:
context: .
dockerfile: Dockerfile
args:
VERSION: ${VERSION:-dev}
COMMIT: ${COMMIT:-none}
BUILD_DATE: ${BUILD_DATE:-unknown}
UI_VERSION: ${UI_VERSION:-dev}
FRONTEND_REPOSITORY: ${FRONTEND_REPOSITORY:-https://github.com/kittors/codeProxy.git}
FRONTEND_REF: ${FRONTEND_REF:-main}
FRONTEND_COMMIT: ${FRONTEND_COMMIT:-}
container_name: cli-proxy-api
entrypoint: ["sh", "-c", "set -a; . /clirelay-deploy/.env; set +a; exec docker-entrypoint.sh ./CLIProxyAPI"]
# env_file:
# - .env
environment:
DEPLOY: ${DEPLOY:-}
CLIRELAY_LOCALE: ${CLIRELAY_LOCALE:-zh}
CLIRELAY_UPDATE_CHANNEL: ${CLIRELAY_UPDATE_CHANNEL:-main}
AUTH_PATH: ${AUTH_PATH:-/CLIProxyAPI/auths}
LANG: ${CLIRELAY_LANG:-C.UTF-8}
LANGUAGE: ${CLIRELAY_LANGUAGE:-en_US:en}
LC_ALL: ${CLIRELAY_LANG:-C.UTF-8}
ports:
- "8317:8317"
- "127.0.0.1:8085:8085"
- "127.0.0.1:1455:1455"
- "127.0.0.1:54545:54545"
- "127.0.0.1:51121:51121"
- "127.0.0.1:11451:11451"
volumes:
- ${CLI_PROXY_CONFIG_PATH:-${CLIRELAY_PROJECT_DIR:-${PWD:-.}}/config.yaml}:/CLIProxyAPI/config.yaml
- ${CLI_PROXY_AUTH_PATH:-${CLIRELAY_PROJECT_DIR:-${PWD:-.}}/auths}:${AUTH_PATH:-/CLIProxyAPI/auths}
- ${CLI_PROXY_LOG_PATH:-${CLIRELAY_PROJECT_DIR:-${PWD:-.}}/logs}:/CLIProxyAPI/logs
- ${CLI_PROXY_DATA_PATH:-${CLIRELAY_PROJECT_DIR:-${PWD:-.}}/data}:/CLIProxyAPI/data
- ${CLIRELAY_PROJECT_DIR:-${PWD:-.}}:/clirelay-deploy
depends_on:
clirelay-init:
condition: service_completed_successfully
postgres:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
clirelay-updater:
image: ${CLI_PROXY_IMAGE:-ghcr.io/kittors/clirelay:latest}
pull_policy: ${CLI_PROXY_PULL_POLICY:-always}
command: ["./clirelay-updater"]
entrypoint: ["sh", "-c", "set -a; . /clirelay-deploy/.env; set +a; exec docker-entrypoint.sh ./clirelay-updater"]
user: "0:0"
environment:
CLIRELAY_PROJECT_DIR: ${CLIRELAY_PROJECT_DIR:-${PWD:-.}}
CLIRELAY_COMPOSE_FILE: ${CLIRELAY_PROJECT_DIR:-${PWD:-.}}/docker-compose.yml
CLIRELAY_ENV_FILE: ${CLIRELAY_ENV_FILE:-${CLIRELAY_PROJECT_DIR:-${PWD:-.}}/.env}
CLIRELAY_COMPOSE_PROJECT_NAME: ${CLIRELAY_COMPOSE_PROJECT_NAME:-}
CLIRELAY_TARGET_SERVICE: ${CLIRELAY_TARGET_SERVICE:-cli-proxy-api}
CLIRELAY_UPDATER_STATE_FILE: ${CLIRELAY_UPDATER_STATE_FILE:-${CLIRELAY_PROJECT_DIR:-${PWD:-.}}/.clirelay-updater-status.json}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${CLIRELAY_PROJECT_DIR:-${PWD:-.}}:${CLIRELAY_PROJECT_DIR:-${PWD:-.}}
- ${CLIRELAY_PROJECT_DIR:-${PWD:-.}}:/clirelay-deploy
- ${CLI_PROXY_CONFIG_PATH:-${CLIRELAY_PROJECT_DIR:-${PWD:-.}}/config.yaml}:/CLIProxyAPI/config.yaml
depends_on:
clirelay-init:
condition: service_completed_successfully
healthcheck:
disable: true
restart: unless-stopped
postgres:
image: postgres:15-alpine
entrypoint: ["sh", "-c", "set -a; . /clirelay-deploy/.env; set +a; export POSTGRES_DB=\"$$CLIRELAY_POSTGRES_DB\" POSTGRES_USER=\"$$CLIRELAY_POSTGRES_USER\" POSTGRES_PASSWORD=\"$$CLIRELAY_POSTGRES_PASSWORD\"; exec docker-entrypoint.sh postgres"]
volumes:
- ${CLIRELAY_POSTGRES_DATA_PATH:-${CLIRELAY_PROJECT_DIR:-${PWD:-.}}/postgres-data}:/var/lib/postgresql/data
- ${CLIRELAY_PROJECT_DIR:-${PWD:-.}}:/clirelay-deploy
healthcheck:
test: ["CMD-SHELL", ". /clirelay-deploy/.env; pg_isready -U \"$$CLIRELAY_POSTGRES_USER\" -d \"$$CLIRELAY_POSTGRES_DB\""]
interval: 5s
timeout: 5s
retries: 20
depends_on:
clirelay-init:
condition: service_completed_successfully
restart: unless-stopped
redis:
image: redis:7-alpine
command: ["redis-server", "--appendonly", "yes"]
volumes:
- ${CLIRELAY_REDIS_DATA_PATH:-${CLIRELAY_PROJECT_DIR:-${PWD:-.}}/redis-data}:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 20
depends_on:
clirelay-init:
condition: service_completed_successfully
restart: unless-stopped