certs | ||
conf | ||
distr | ||
images | ||
licenses_1c | ||
modules | ||
other_files | ||
.gitattributes | ||
.gitignore | ||
docker-compose_pattern.yml | ||
install.py | ||
README.md | ||
start.py |
1С:Предприятие. Облачная подсистема Фреш в Docker
Позволяет в течении ~30 минут развернуть рабочий стенд облачной подсистемы Фреш с использованием технологии docker. Может пригодиться для:
- Разработки конфигурации которая должна работать в облаке
- Разработки самой технологии Фреш
- Тестирования средств адаптации конфигураций
- Так же Фреш можно использовать для централизированной поддержки информационных баз, планирования обновлений, обновления, завершения работы пользователей.
- и т.д.
Видеоинструкция
Системные требования
- Оперативная память от 4Гб
- лучше от 8Гб
- Свободное место от 50Гб
- Необходимое ПО:
Использование команды docker без sudo на linux
Для использования на ОС симейства linux команды docker без sudo необходимо добавить пользователя в группу docker.
sudo usermod -aG docker ${USER}
Дистрибутивы необходимые для развертывания
Для развертывания стенда потребуются дистрибутивы платформы 1С Предприятие и подсистемы Фреш
- Платформа 1С Предприятие 8.3 требуется два файла
- Клиент 1С:Предприятия (64-bit) для RPM-based Linux-систем
- Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем
- Дистрибутивы компонентов 1cFresh
- Сайт 1cFresh
- Форум 1cFresh
- Шлюз приложений для DEB-based Linux-систем
- Конфигурация Менеджер сервиса
- Конфигурация Агент сервиса
- Конфигурация Менеджер доступности
- 1С:Библиотека технологии сервиса, редакция 1.2 или 1С:Библиотека технологии сервиса, редакция 2.0
Компоненты используемые для тестирования
- 1С Предприятие 8.3.15.1869
- 1С:Предприятие. Облачная подсистема Фреш 1.0.28.1
- 1С:Библиотека технологии сервиса, редакция 1.2. Версия 1.2.2.26
Для версий платформ начиная с 8.3.20
Необходимо так же скачать и разместить архив с утилитой лицензирования в каталог /docker_fresh/distr/
1. Подготовка к развертыванию
Данный стенд для простоты развертывания использует домен 1cfresh-dev.ru и валидные, выданные let's encrypt сертификаты.
Использование данного доменного имени и сертификатов может быть не безопасным, поэтому предлагается использовать их в только в целях тестирования и ознакомления.
Для более надежного использования данного стенда, поменяйте в файле start.py доменное имя 1cfresh-dev.ru на имя вашего домена и разместите сертификаты в каталоге /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С:Библиотека технологии сервиса
Для 1С:Библиотека технологии сервиса версии 2.0 и выше, нужно взять файл расширения из комплекта поставки 1cv8.cfe или fresh.cfe и разместить его рядом с файлом smtl.cf, назвав smtl.cfe
Настройка списка создаваемых информационных баз
В файле /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 -v 8.3.15.1869
install.py имеет возможность запуска с флагом -debug. При запуске с данным флагом весь процесс сборки будет подробно отображаться на экране.
-v необходимо указать номер версии платформы дистрибутивы который вы скачали
2. Настройка лицензирования
Для работы данного стенда необходимо два вида лицензий
- Серверная
- Клиентская
На операционных системах семейства 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
3. Запуск стенда
Создание нового стенда
Запуск стенда выполняется командой
sudo python3 start.py -new -h mystandname
Флаг -new сообщает скрипту что требуется именно создать новый стенд а не запускать существующий. Параметр -h используется для указания наименования и адреса по которому стенд будет доступен. Если указать значение параметра -h mystand тогда адрес сайта будет https://mystand.1cfresh-dev.ru.
Скрипт start.py имеет возможность запуска с флагом -debug. При запуске с данным флагом весь процесс запуска будет подробно отображаться на экране.
При запуске скрипта start.py происходит создание каталога workdir. В данный каталог копируются необходимые для работы стенда файлы и выполняется их конфигурирование.
Повторный запуск/перезагрузка существующего стенда
Для повторного запуска стенда необходимо использовать скрипт start.py без указания дополнительных параметров.
sudo python3 start.py
Настройка файла hosts
Для доступа к сайту, веб клиентам информационных баз или доступу через конфигуратор необходимо сконфигурировать файл hosts. В файл hosts требуется добавить следующю строку
192.168.1.6 mystandname.1cfresh-dev.ru srv.mystandname.1cfresh-dev.ru s3.1cfresh-dev.ru
Где вместо 192.168.1.6 необходимо указать ip адрес сервера на котором вы развернули стенд Фреша, а вместо mystandname необходимо использовать имя указанное при развертывании стенда.
При запуске стенда в windows с использованием wsl2 корректный ip адрес для записи в файл hosts можно получить выполнить в wsl2 следующую команду
ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
4. Адреса для доступа к компонентам стенда
- Сайт - https://mystandname.1cfresh-dev.ru
- Менеджер сервиса веб клиент - https://mystandname.1cfresh-dev.ru/a/adm?Oida-
- Для доступа через конфигуратор - Srvr="srv.mystandname.1cfresh-dev.ru";Ref="ibname"; в качестве имен информационных баз используются указанные в файле
/docker_fresh/other_files/params.json
данные.
Для выключения стенда достаточно зайти в каталог /docker_fresh/workdir
и выполнить команду
docker-compose down