v8-runner

Контейнеры 1С

Выберите вариант по расположению базы и утилит. Обозначения схем и настройки файлов проекта описаны отдельно.

Кластер в контейнере — через кластер

Сервер 1С и СУБД подняты в контейнерах, раннер работает на хосте. Про Docker раннер не знает ничего: для него это цель на другой машине, к которой ведёт опубликованный порт.

В YAML задана только connection: Конфигуратор и агент подключаются через кластер. Прямой канал ibcmd к СУБД не используется.

Конфигурация

Основной файл v8project.yaml описывает исходники на машине раннера.

workPath: .build         # журналы и временные файлы; можно удалить
format: DESIGNER         # исходники в формате платформы
source-set:
  - name: main           # локальное имя набора
    type: CONFIGURATION  # основная конфигурация
    path: src/cf         # путь от каталога v8project.yaml

v8project.local.yaml рядом с основным файлом:

infobases:
  origin:
    connection: "Srvr=cluster.example:1541;Ref=demo"  # адрес кластера из машины раннера
    cluster:
      ras: "cluster.example:1545"                     # опубликованный порт RAS

cluster.example — имя, которым кластер представляет себя клиентам; оно должно разрешаться с машины раннера в контейнер. Публикуются порты менеджера, рабочих процессов и RAS. Платформа запускается на машине раннера.

Кластер в контейнере — ibcmd при остановленном кластере

Перед обращением ibcmd остановите серверные процессы кластера, обслуживающего эту базу. Завершение сеансов или блокировка входа не заменяют остановку. Инструменты автономного сервера нельзя применять к базе под работающим кластером: это может разрушить базу данных (60).

Конфигурация

Основной v8project.yaml тот же; v8project.local.yaml:

infobases:
  origin:
    connection: "Srvr=cluster.example:1541;Ref=demo"            # адрес для работы после запуска кластера
    dbms:                                                       # прямое подключение ibcmd к СУБД
      kind: PostgreSQL                                          # тип СУБД
      server: "localhost port=5432"                                  # порт СУБД, опубликованный на хосте
      name: demo_data                                           # физическое имя БД, не Ref
      user: dbadmin                                             # пользователь СУБД
      password: "db-password"                                   # пароль пользователя СУБД
    cluster:
      ras: "cluster.example:1545"                               # опубликованный порт RAS

dbms.name — физическая база demo_data, в которой кластер хранит информационную базу demo. Это имя и учётные данные СУБД задаются отдельно от Ref и пользователя 1С. В Docker порт 5432 опубликован из контейнера СУБД на машину раннера; имя контейнера db доступно кластеру внутри сети Docker.

В этом режиме ibcmd использует только dbms. Сохранённая connection относится к штатной работе через кластер; пока он остановлен, этот канал не используется. Наличие dbms не останавливает кластер автоматически.

Автономный сервер в контейнере

Тот же ibsrv, но поднятый контейнером. Как и у автономного сервера на отдельной машине, здесь можно обойтись без утилит 1С у раннера: по SSH команды исполняет сервер в контейнере. С платформой у раннера открыт и прямой шлюз, если его порт опубликован.

Конфигурация

Используйте тот же v8project.yaml, что в первом варианте этой страницы. Меняется локальный файл.

v8project.local.yaml рядом с основным файлом:

infobases:
  origin:
    user: developer                         # пользователь базы и SSH-шлюза
    password: "ib-password"
    standalone:
      gate: "localhost:1543"                # порт контейнера на машине раннера
      exchange:
        dir: /srv/ibsrv-exchange/developer  # том пользователя шлюза, видимый хосту
    web:
      url: "http://localhost:8314/demo"     # HTTP-порт контейнера на хосте

Контейнер работает на машине раннера: его порты 1543 и 8314 опубликованы на хосте. Каталог пользователя developer смонтирован из контейнера в /srv/ibsrv-exchange/developer. Команды исполняются через SSH; местная платформа для этого примера не требуется.

Возможности операций — на странице Компоненты.