Files
DFWebOS-Apps/web-1c

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С:Предприятие

  1. Откройте releases.1c.ru.

  2. Перейдите в раздел Технологическая платформа 8.3 → Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем.

  3. Скачайте архив версии 8.3.23.1912 (или другой — см. примечание ниже).

  4. Сохраните файл как:

    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="/BuhBase"
       ib="Srvr=192.168.10.195;Ref=УПФ"
       enableStandardOData="true">
    <ws publishExtensionsByDefault="true"/>
    <httpServices publishByDefault="true" publishExtensionsByDefault="true"/>
</point>

Файл смонтирован томом — изменения подхватываются перезапуском приложения, без пересборки образа.

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/

Несколько информационных баз

Чтобы опубликовать вторую базу:

  1. Подготовьте отдельный .vrd (например, another.vrd) рядом с default.vrd в data/vrd/.
  2. Добавьте в docker/Dockerfile копирование своего .vrd в каталог /usr/local/apache2/htdocs/<AnotherBase>/.
  3. Раскомментируйте и адаптируйте блок второй базы в docker/httpd.conf (см. конец файла).
  4. Смонтируйте новый .vrd томом в docker-compose.yml.
  5. Пересоберите образ (./build-image.sh) и переустановите приложение в DFWebOS.