1
0
mirror of https://github.com/1C-Company/docker_fresh.git synced 2024-12-02 09:11:34 +02:00
1cFresh (1С:Предприятие. Облачная подсистема Фреш)
Go to file
2024-12-01 08:04:32 +00:00
certs renew sert 2024-12-01 08:04:32 +00:00
conf Изменение домена на 1cfresh-dev.ru (#38) 2024-03-13 12:07:40 +03:00
distr add distr dir 2020-04-05 16:10:51 +03:00
images Исправление сборки образа appgate #30 (#31) 2022-10-14 12:43:58 +03:00
licenses_1c fix 2020-04-06 18:43:54 +03:00
modules Адаптировали для развертывания на платформах 8.3.20+ (#27) 2022-06-08 10:29:36 +03:00
other_files Исправил ошибку первоначального заполнения на новых версиях МС 2021-05-13 20:24:10 +03:00
.gitattributes try to fix problem with cl and clrf in sh files 2020-07-21 19:34:05 +03:00
.gitignore fix problem with ' symbol 2020-07-23 20:57:47 +03:00
docker-compose_pattern.yml Изменение домена на 1cfresh-dev.ru (#38) 2024-03-13 12:07:40 +03:00
install.py Адаптировали для развертывания на платформах 8.3.20+ (#27) 2022-06-08 10:29:36 +03:00
README.md Изменение домена на 1cfresh-dev.ru (#38) 2024-03-13 12:07:40 +03:00
start.py Изменение домена на 1cfresh-dev.ru (#38) 2024-03-13 12:07:40 +03:00

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

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

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

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

Click to go to video

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

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

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

sudo usermod -aG docker ${USER}

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

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

Компоненты используемые для тестирования
Для версий платформ начиная с 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