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-07-30 14:59:14 +03:00

16 KiB

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

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

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

Видеоинструкция

Click to go to video

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

Использование команды 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/1C-Company/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/
  • В данный список можно добавить свои информационные базы

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

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

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

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

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

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

sudo python3 install.py

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

Настройка лицензирования

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

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

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

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

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

Настройка 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

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

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

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

sudo python3 start.py -new -h mystandname

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

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

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

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

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

sudo python3 start.py

Настройка файла 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