7.3 KiB
1С:Предприятие — веб-публикация для DFWebOS
Контейнер с Apache 2.4 и модулем веб-сервера 1С:Предприятие 8.3, публикующий информационную базу 1С по пути /BuhBase.
Это веб-фронтенд. Сам сервер 1С:Предприятие должен быть запущен отдельно (на той же машине или в локальной сети) — приложение лишь публикует информационную базу через Apache.
Адаптация репозитория petrmyazin/docker-apache-1c-example под фреймворк приложений DFWebOS.
Структура каталога
web-1c/
├── dfwebos-app.yml # манифест приложения для DFWebOS
├── docker-compose.yml # ссылается на готовый локальный образ
├── README.md # этот файл
├── docker/ # build-контекст образа Apache + модуль 1С
│ ├── Dockerfile
│ ├── httpd.conf # преднастроенный конфиг Apache + публикация /BuhBase
│ ├── default.vrd # дефолт, запекается в образ; в рантайме перекрывается томом
│ ├── build-image.sh # скрипт локальной сборки образа
│ ├── .gitignore # исключает deb64.tar.gz из git
│ └── deb64.tar.gz # ⚠️ положить вручную, см. ниже
└── data/
└── vrd/
└── default.vrd # рабочие настройки подключения, монтируются в контейнер
Почему образ собирается отдельно
Все остальные приложения DFWebOS используют готовые образы из публичных registry, и манифесты с директивой build: в docker-compose.yml не показываются в магазине. Поэтому образ для 1С нужно собрать локально один раз на той же машине, где работает DFWebOS, и docker-compose поднимает уже готовый образ из локального Docker daemon — без обращения к публичному registry.
Дополнительная причина — лицензионные ограничения: проприетарные deb-пакеты сервера 1С:Предприятие нельзя публиковать в публичных Docker-реестрах.
Подготовка перед установкой
1. Скачать дистрибутив сервера 1С:Предприятие
-
Откройте releases.1c.ru.
-
Перейдите в раздел Технологическая платформа 8.3 → Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем.
-
Скачайте архив версии 8.3.23.1912 (или другой — см. примечание ниже).
-
Сохраните файл как:
web-1c/docker/deb64.tar.gz
При смене версии платформы обновите путь к
wsap24.soв docker/httpd.conf (строкаLoadModule _1cws_module /opt/1cv8/x86_64/<версия>/wsap24.so), теги в docker/build-image.sh и docker-compose.yml, и полеversionв dfwebos-app.yml.
2. Собрать образ локально
На той же машине, где работает DFWebOS:
cd web-1c/docker
./build-image.sh
Скрипт соберёт и зарегистрирует в локальном Docker daemon образ dfwebos/apache-1c:8.3.23.1912. Сборка занимает несколько минут и съедает ~1.5 ГБ места.
Проверить, что образ доступен:
docker images dfwebos/apache-1c
3. Настроить подключение к серверу 1С
Отредактируйте файл data/vrd/default.vrd, указав:
- адрес вашего сервера 1С:Предприятие (
Srvr=), - имя информационной базы (
Ref=).
Пример:
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
base="/app-web-1c/BuhBase"
ib="Srvr=192.168.10.195;Ref=УПФ"
enableStandardOData="true">
<ws publishExtensionsByDefault="true"/>
<httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
</point>
Файл смонтирован томом — изменения подхватываются перезапуском приложения, без пересборки образа.
Для DFWebOS с запуском через прокси base должен оставаться /app-web-1c/BuhBase: Apache внутри контейнера добавляет этот префикс перед передачей запроса 1С-handler'у, а браузер получает корректные абсолютные ссылки через /app-web-1c/....
4. (Опционально) добавить DNS-имена сервера 1С
Если в default.vrd используется DNS-имя сервера 1С (а не IP), которое не разрешается из контейнера, раскомментируйте блок extra_hosts: в docker-compose.yml и пропишите соответствие имени и IP-адреса.
Установка в DFWebOS
После того как образ собран, а data/vrd/default.vrd настроен, приложение можно устанавливать стандартным способом DFWebOS — оно появится в магазине в категории developer под именем «1С:Предприятие (веб-публикация)».
После установки информационная база будет доступна по адресу:
http://<dfwebos-host>:8180/BuhBase/
Несколько информационных баз
Чтобы опубликовать вторую базу:
- Подготовьте отдельный
.vrd(например,another.vrd) рядом сdefault.vrdвdata/vrd/. - Добавьте в docker/Dockerfile копирование своего
.vrdв каталог/usr/local/apache2/htdocs/<AnotherBase>/. - Раскомментируйте и адаптируйте блок второй базы в docker/httpd.conf (см. конец файла).
- Смонтируйте новый
.vrdтомом в docker-compose.yml. - Пересоберите образ (
./build-image.sh) и переустановите приложение в DFWebOS.