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/Lcc-CL/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