1
0
mirror of https://github.com/1C-Company/docker_fresh.git synced 2024-12-12 10:45:25 +02:00
docker_fresh/README.md
2020-04-18 13:26:14 +03:00

15 KiB

1С:Предприятие. Облачная подсистема Фреш в Docker

Позволяет в течении ~30 минут развернуть рабочий стенд облачной подсистемы Фреш с использованием технологии docker. Может пригодится для:

  • Разработки конфигурации которая должно работать в облаке
  • Разработки самой технологии Фреш
  • Тестирования средств адаптации конфигураций
  • Так же Фреш можно использовать для централизированной поддержки информационных баз, планирование обновлений, обновления, завершение работы пользователей.
  • и т.д.

Системные требования

Использование команды docker без sudo на linux

Для использования на ОС симейства linux команды docker без sudo необходимо добавить пользователя в группу docker.

sudo usermod -aG docker ${USER}

Дистрибутивы необходимые для развертывания

Для развертывания стенда потребуются дистрибутивы платформы 1С Предприятие и подсистемы Фреш

Компоненты используемые для тестирования

Подготовка к развертыванию

Данный стенд для простоты развертывания использует домен 1cfresh.dev и валидные, выданные let's encrypt сертификаты. Использование данного доменного имени и сертификатов может быть не безопасным, поэтому предлагается использовать их в только в целях тестирования и ознакомления.
Для более надежного использования данного стенда, поменяйте в файле start.py доменное имя 1cfresh.dev на имя вашего домена и разместите сертификаты в каталоге /docker_fresh/certs/

Клонирование репозитория
git clone https://github.com/WizaXxX/docker_fresh.git
cd docker_fresh
Размещение дистрибутитов

Все ранее скачанные дистрибутивы необходимо разместить в каталоге /docker_fresh/distr/. После добавления всех дистрибутивов в каталог, он должен выглядить примерно следующим образом

Файл smtl.cf это файл demo/1cv8_service.cf из комплекта поставки 1С:Библиотека технологии сервиса

Настройка списка создаваемых информационных баз

В файле /docker_fresh/other_files/params.json расположен список информационных баз в формате JSON которые требуется создать

  • Информационная база SM всегда должна быть первой в списке
  • Для каждой базы необходимо прописать имя CF файла расположенного в каталоге/docker_fresh/distr/
  • В данный список можно добавить свои информационные базы
Настройка лицензирования

Для работы данного стенда необходимо два вида лицензий

  • Серверная
  • Клиентская

На операционных системах семейства Linux поддерживается проброс HASP ключей в контейнеры. На остальных, работа возможна только с помощью программных лицензий или указания сервера лицензирования в файле nethasp.ini для получения клиентских лицензий.

Проброс HASP ключей

Проброс в контейнер выполняется в файле docker-compose.yml путем монтирования файла /tmp/.aksusb в контейнер srv(контейнер содержащий сервер 1С)

Настройка nethasp.ini

Файл расположен по пути docker_fresh/conf/core/nethasp.ini. Если вы хотите указать сервер с лицензиями нужно раскоментировать каждую строку в этом файле и вместо server указать имя реально существующего сервера

Активация программных лицензий

Активация программных лицензий выполняется с помощью утилиты ring которая присутствует в образе core. Пример строки активации лицензии

docker run --rm -it \ 
-v /Users/wizaxxx/Documents/projects/docker_fresh/licenses_1c:/var/1C/licenses \
fresh/core \ 
bash -l -c 'ring license activate --first-name "myname" --middle-name "mymiddlename" --last-name "mylastname" --email "myemail@email.com" --country "Russia" --zip-code "101000" --town "Moscow" --street "mystree" --house "myhouse" --apartment "myapart" --serial "myRegNumber" --pin "MyPIN" --send-statistics "false"'

Где -v /Users/wizaxxx/Documents/projects/docker_fresh/licenses_1c:/var/1C/licenses является пробросом каталога с лицензиями /var/1C/licenses из контейнера в локальный каталог /Users/wizaxxx/Documents/projects/docker_fresh/licenses_1c для дальнейшего использования.
Все остальный параметры заполняются согласно документации утилиты ring

При возникновении проблем при работе со скриптами start.py или install.py

Выполните повторый запуск данной команды с ключем -debug сделайте скриншот результата и зарегистрируйте ошибку

Сборка образов

Данный стенд содержит следующие контейнеры:

  • centos - является базовым образом для образов core и db
  • core - платформа 1С, клиентская и серверная часть. Дополнительно содержит ring, onescript
  • db - сервер баз дынных Postgres
  • site - компонент сайта Фреша
  • forum - компонент форум Фреша
  • gate - компонент шлюз приложений Фреша

Сборка образов запускается командой

sudo python3 install.py

install.py имеет возможность запуска с флагом -debug. При запуске с данным флагом весь процесс сборки будет подробно отображаться на экране.

Запуск стенда

Создание нового стенда

Запуск стенда выполняется командой

sudo python3 start.py -new -h mystandname

Флаг -new сообщает скрипту что требуется именно создать новый стенд а не запускать существующий. Параметр -h используется для указания наименования и адреса по которому стенд будет доступен. Если указать значение параметра -h mystand тогда адрес сайта будет https://mystand.1cfresh.dev.

Скрипт start.py имеет возможность запуска с флагом -debug. При запуске с данным флагом весь процесс запуска будет подробно отображаться на экране.

При запуске скрипта start.py происходит создание каталога workdir. В данный каталог копируются необходимые для работы стенда файлы и выполняется их конфигурирование.

Повторный запуск/перезагрузка существующего стенда

Для повторного запуска стенда необходимо использовать скрипт start.sh без указания дополнительных параметров.

Настройка файла hosts

Для доступа к сайту, веб клиентам информационных баз или доступу через конфигуратор необходимо сконфигурировать файл hosts. В файл hosts требуется добавить следующю строку

192.168.1.6 mystandname.1cfresh.dev srv.mystandname.1cfresh.dev

Где вместо 192.168.1.6 необходимо указать ip адрес сервера на котором вы развернули стенд Фреша, а вместо mystandname необходимо использовать имя указанное при развертывании стенда

Адреса для доступа к компонентам стенда

  • Сайт - https://mystandname.1cfresh.dev
  • Менеджер сервиса веб клиент - https://mystandname.1cfresh.dev/a/adm?Oida-
  • Для доступа через конфигуратор - Srvr="srv.mystandname.1cfresh.dev";Ref="ibname"; в качестве имен информационных баз используются указанные в файле/docker_fresh/other_files/params.json данные.

Для выключения стенда достаточно зайти в каталог /docker_fresh/workdir и выполнить команду

docker-compose down