Ctrl K
ComunidadGuías…

docker-compose.yml

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

Archivo original ↗Preguntar a KiBot
services:
  xopc-gateway:
    image: ${XOPC_IMAGE:-xopc:local}
    build:
      context: .
      args:
        XOPC_APT_MIRROR: ${XOPC_APT_MIRROR:-}
        XOPC_IMAGE_APT_PACKAGES: ${XOPC_IMAGE_APT_PACKAGES:-}
        XOPC_INSTALL_BROWSER: ${XOPC_INSTALL_BROWSER:-}
    env_file:
      - path: .env
        required: false
    environment:
      HOME: /home/node
      XOPC_HOME: /home/node
      XOPC_STATE_DIR: /home/node/.xopc
      XOPC_CONFIG: /home/node/.xopc/xopc.json
      XOPC_CONFIG_PATH: /home/node/.xopc/xopc.json
      XOPC_WORKSPACE: /home/node/.xopc/workspace
      XOPC_LOG_DIR: /home/node/.xopc/logs
      XOPC_GATEWAY_TOKEN: ${XOPC_GATEWAY_TOKEN:-}
      TERM: xterm-256color
      TZ: ${XOPC_TZ:-UTC}
    volumes:
      - "${XOPC_STATE_DIR:-${HOME:-/tmp}/.xopc}:/home/node/.xopc"
      - "${XOPC_WORKSPACE:-${HOME:-/tmp}/.xopc/workspace}:/home/node/.xopc/workspace"
    cap_drop:
      - NET_RAW
      - NET_ADMIN
    security_opt:
      - no-new-privileges:true
    extra_hosts:
      - "host.docker.internal:host-gateway"
    ports:
      - "${XOPC_GATEWAY_PORT:-18790}:18790"
    init: true
    restart: unless-stopped
    command:
      [
        "node",
        "dist/src/cli/bin.js",
        "gateway",
        "--bind",
        "lan",
        "--port",
        "18790"
      ]
    healthcheck:
      test:
        [
          "CMD",
          "node",
          "-e",
          "fetch('http://127.0.0.1:18790/api/health').then((response)=>process.exit(response.ok?0:1)).catch(()=>process.exit(1))"
        ]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 20s

  xopc-cli:
    image: ${XOPC_IMAGE:-xopc:local}
    network_mode: "service:xopc-gateway"
    env_file:
      - path: .env
        required: false
    environment:
      HOME: /home/node
      XOPC_HOME: /home/node
      XOPC_STATE_DIR: /home/node/.xopc
      XOPC_CONFIG: /home/node/.xopc/xopc.json
      XOPC_CONFIG_PATH: /home/node/.xopc/xopc.json
      XOPC_WORKSPACE: /home/node/.xopc/workspace
      XOPC_LOG_DIR: /home/node/.xopc/logs
      XOPC_GATEWAY_TOKEN: ${XOPC_GATEWAY_TOKEN:-}
      BROWSER: echo
      TERM: xterm-256color
      TZ: ${XOPC_TZ:-UTC}
    volumes:
      - "${XOPC_STATE_DIR:-${HOME:-/tmp}/.xopc}:/home/node/.xopc"
      - "${XOPC_WORKSPACE:-${HOME:-/tmp}/.xopc/workspace}:/home/node/.xopc/workspace"
    cap_drop:
      - NET_RAW
      - NET_ADMIN
    security_opt:
      - no-new-privileges:true
    stdin_open: true
    tty: true
    init: true
    entrypoint: ["node", "dist/src/cli/bin.js"]
    depends_on:
      - xopc-gateway
    profiles:
      - cli