Контейнеры 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; местная платформа для этого примера не требуется.
Возможности операций — на странице Компоненты.