Ctrl K
ComunidadGuías…

docker-compose.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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