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

151 lines
15 KiB
Markdown
Raw Normal View History

2020-04-11 15:40:41 +02:00
# [1С:Предприятие. Облачная подсистема Фреш](https://v8.1c.ru/tekhnologii/1cfresh/o-tekhnologii/ "1С:Предприятие. Облачная подсистема Фреш") в Docker
2020-04-11 17:25:04 +02:00
Позволяет в течении ~30 минут развернуть рабочий стенд облачной подсистемы Фреш с использованием технологии docker.
2020-04-10 18:47:06 +02:00
Может пригодится для:
- Разработки конфигурации которая должно работать в облаке
- Разработки самой технологии Фреш
- Тестирования средств адаптации конфигураций
2020-04-16 08:00:16 +02:00
- Так же Фреш можно использовать для централизированной поддержки информационных баз, планирование обновлений, обновления, завершение работы пользователей.
2020-04-10 18:47:06 +02:00
- и т.д.
## Системные требования
- Оперативной памяти от 4Гб
- Лучше от 8Гб
- Свободного места от 50Гб
2020-04-11 18:15:51 +02:00
- Необходимое ПО:
2020-04-11 16:36:41 +02:00
- [Python 3+](https://www.python.org/downloads/ "Python 3+")
2020-04-14 22:40:33 +02:00
- [Docker. Инструкция по установке](https://docs.docker.com/engine/install/ "Docker. Инструкция по установке")
- [Docker Compose. Инструкция по установке](https://docs.docker.com/compose/install/ "Docker Compose. Инструкция по установке")
2020-04-10 18:47:06 +02:00
2020-04-11 16:33:05 +02:00
## Дистрибутивы необходимые для развертывания
2020-04-10 18:47:06 +02:00
Для развертывания стенда потребуются дистрибутивы платформы 1С Предприятие и подсистемы Фреш
- [Платформа 1С Предприятие 8.3](https://releases.1c.ru/project/Platform83 "Платформа 1С Предприятие 8.3") требуется два файла
- Клиент 1С:Предприятия (64-bit) для RPM-based Linux-систем
- Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем
- [Дистрибутивы компонентов 1cFresh](https://releases.1c.ru/project/FreshPublic "Дистрибутивы компонентов 1cFresh")
- Сайт 1cFresh
- Форум 1cFresh
- Шлюз приложений для DEB-based Linux-систем
- Конфигурация **Менеджер сервиса**
- Конфигурация **Агент сервиса**
- Конфигурация **Менеджер доступности**
- [1С:Библиотека технологии сервиса, редакция 1.2](https://releases.1c.ru/version_files?nick=SMTL12&ver=1.2.2.26 "1С:Библиотека технологии сервиса, редакция 1.2") или [1С:Библиотека технологии сервиса, редакция 2.0](https://releases.1c.ru/project/SMTL20 "1С:Библиотека технологии сервиса, редакция 2.0")
2020-04-11 16:43:42 +02:00
##### Компоненты используемые для тестирования
2020-04-10 18:47:06 +02:00
- [1С Предприятие 8.3.15.1869](https://releases.1c.ru/version_files?nick=Platform83&ver=8.3.15.1869 "1С Предприятие 8.3.15.1869")
- [Клиент 1С:Предприятия (64-bit) для RPM-based Linux-систем](https://releases.1c.ru/version_file?nick=Platform83&ver=8.3.15.1869&path=Platform\8_3_15_1869\client_8_3_15_1869.rpm64.tar.gz "Клиент 1С:Предприятия (64-bit) для RPM-based Linux-систем")
- [Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем](https://releases.1c.ru/version_file?nick=Platform83&ver=8.3.15.1869&path=Platform\8_3_15_1869\rpm64_8_3_15_1869.tar.gz "Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем")
- [1С:Предприятие. Облачная подсистема Фреш 1.0.28.1](https://releases.1c.ru/version_files?nick=FreshPublic&ver=1.0.28.1 "1С:Предприятие. Облачная подсистема Фреш 1.0.28.1")
- [Сайт 1cFresh 1.2.14.1](https://releases.1c.ru/version_file?nick=FreshPublic&ver=1.0.28.1&path=FreshPublic\1_0_28_1\Extrafiles\site_1.2.14.zip "Сайт 1cFresh 1.2.14.1")
- [Форум 1cFresh 1.0.41.1](https://releases.1c.ru/version_file?nick=FreshPublic&ver=1.0.28.1&path=FreshPublic\1_0_28_1\Extrafiles\forum_1.0.41.zip "Форум 1cFresh 1.0.41.1")
- [Шлюз приложений 1.1.1.8 для DEB-based Linux-систем ](https://releases.1c.ru/version_file?nick=FreshPublic&ver=1.0.28.1&path=FreshPublic\1_0_28_1\Extrafiles\appgate_1.1.1.8_1_all.deb "Шлюз приложений 1.1.1.8 для DEB-based Linux-систем ")
- [Менеджер сервиса. Версия 1.0.94.20](https://releases.1c.ru/version_file?nick=FreshPublic&ver=1.0.28.1&path=SM\1_0_94_20\SM_1_0_94_20_setup1c.exe "Менеджер сервиса. Версия 1.0.94.20")
- [Агент сервиса. Версия 1.0.29.4](https://releases.1c.ru/version_file?nick=FreshPublic&ver=1.0.28.1&path=SA\1_0_29_4\SA_1_0_29_4_setup1c.exe "Агент сервиса. Версия 1.0.29.4")
- [Менеджер доступности. Версия 1.0.3.4](https://releases.1c.ru/version_file?nick=FreshPublic&ver=1.0.28.1&path=AM\1_0_3_4\AM_1_0_3_4_setup1c.exe "Менеджер доступности. Версия 1.0.3.4")
- [1С:Библиотека технологии сервиса, редакция 1.2. Версия 1.2.2.26](https://releases.1c.ru/version_files?nick=SMTL12&ver=1.2.2.26 "1С:Библиотека технологии сервиса, редакция 1.2. Версия 1.2.2.26")
2020-04-11 16:36:41 +02:00
2020-04-10 18:47:06 +02:00
## Подготовка к развертыванию
2020-04-11 16:33:05 +02:00
Данный стенд для простоты развертывания использует домен 1cfresh.dev и валидные, выданные let's encrypt сертификаты.
Использование данного доменного имени и сертификатов может быть не безопасным, поэтому предлагается использовать их в только в целях тестирования и ознакомления.
Для более надежного использования данного стенда, поменяйте в файле **start.py** доменное имя 1cfresh.dev на имя вашего домена и разместите сертификаты в каталоге `/docker_fresh/certs/`
2020-04-10 18:47:06 +02:00
##### Клонирование репозитория
```bash
git clone https://github.com/WizaXxX/docker_fresh.git
cd docker_fresh
```
##### Размещение дистрибутитов
2020-04-11 15:23:52 +02:00
Все ранее скачанные дистрибутивы необходимо разместить в каталоге `/docker_fresh/distr/`.
После добавления всех дистрибутивов в каталог, он должен выглядить примерно следующим образом
2020-04-11 15:40:41 +02:00
![](https://i.ibb.co/S50sF96/2020-04-10-16-03-22.png)
2020-04-11 16:33:05 +02:00
2020-04-11 15:40:41 +02:00
Файл **smtl.cf** это файл **demo/1cv8_service.cf** из комплекта поставки **1С:Библиотека технологии сервиса**
2020-04-10 18:47:06 +02:00
2020-04-11 15:40:41 +02:00
##### Настройка списка создаваемых информационных баз
2020-04-11 15:23:52 +02:00
В файле `/docker_fresh/other_files/params.json` расположен список информационных баз в формате **JSON** которые требуется создать
- Информационная база **SM** всегда должна быть первой в списке
- Для каждой базы необходимо прописать имя **CF** файла расположенного в каталоге`/docker_fresh/distr/`
2020-04-11 15:40:41 +02:00
- В данный список можно добавить свои информационные базы
##### Настройка лицензирования
Для работы данного стенда необходимо два вида лицензий
- Серверная
- Клиентская
2020-04-11 17:25:04 +02:00
На операционных системах семейства Linux поддерживается проброс HASP ключей в контейнеры. На остальных, работа возможна только с помощью программных лицензий или указания сервера лицензирования в файле **nethasp.ini** для получения клиентских лицензий.
2020-04-11 16:23:26 +02:00
###### Проброс HASP ключей
Проброс в контейнер выполняется в файле **docker-compose.yml** путем монтирования файла **/tmp/.aksusb** в контейнер **srv**(контейнер содержащий сервер 1С)
###### Настройка nethasp.ini
2020-04-11 17:25:04 +02:00
Файл расположен по пути `docker_fresh/conf/core/nethasp.ini`.
2020-04-11 16:23:26 +02:00
Если вы хотите указать сервер с лицензиями нужно раскоментировать каждую строку в этом файле и вместо **server** указать имя реально существующего сервера
###### Активация программных лицензий
Активация программных лицензий выполняется с помощью утилиты **ring** которая присутствует в образе **core**.
Пример строки активации лицензии
```bash
2020-04-11 16:45:54 +02:00
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"'
2020-04-11 16:23:26 +02:00
```
Где
`-v /Users/wizaxxx/Documents/projects/docker_fresh/licenses_1c:/var/1C/licenses`
2020-04-11 16:36:41 +02:00
является пробросом каталога с лицензиями `/var/1C/licenses` из контейнера в локальный каталог `/Users/wizaxxx/Documents/projects/docker_fresh/licenses_1c` для дальнейшего использования.
2020-04-12 01:09:14 +02:00
Все остальный параметры заполняются согласно [документации](https://its.1c.ru/db/v8315doc#bookmark:adm:TI000000683 "документации") утилиты **ring**
2020-04-11 16:23:26 +02:00
2020-04-11 16:33:05 +02:00
##### Сборка образов
Данный стенд содержит следующие контейнеры:
2020-04-12 01:09:14 +02:00
- **centos** - является базовым образом для образов **core** и **db**
2020-04-11 16:33:05 +02:00
- **core** - платформа 1С, клиентская и серверная часть. Дополнительно содержит **ring, onescript**
- **db** - сервер баз дынных Postgres
- **site** - компонент сайта Фреша
- **forum** - компонент форум Фреша
- **gate** - компонент шлюз приложений Фреша
Сборка образов запускается командой
```bash
python3 install.py
```
**install.py** имеет возможность запуска с флагом **-debug**. При запуске с данным флагом весь процесс сборки будет подробно отображаться на экране. Возможно для запуска потребуется использование команды **sudo** на операционных системах Mac и Linux
2020-04-11 16:33:05 +02:00
## Запуск стенда
2020-04-11 16:33:05 +02:00
### Создание нового стенда
2020-04-11 15:40:41 +02:00
Запуск стенда выполняется командой
```bash
python3 start.py -new -h mystandname
```
Флаг **-new** сообщает скрипту что требуется именно создать новый стенд а не запускать существующий.
Параметр **-h** используется для указания наименования и адреса по которому стенд будет доступен. Если указать значение параметра **-h** mystand тогда адрес сайта будет **https://mystand.1cfresh.dev**.
Скрипт **start.py** имеет возможность запуска с флагом **-debug**. При запуске с данным флагом весь процесс запуска будет подробно отображаться на экране. Возможно для запуска потребуется использование команды **sudo** на операционных системах Mac и Linux
При запуске скрипта **start.py** происходит создание каталога **workdir**. В данный каталог копируются необходимые для работы стенда файлы и выполняется их конфигурирование.
2020-04-11 15:40:41 +02:00
### Повторный запуск/перезагрузка существующего стенда
Для повторного запуска стенда необходимо использовать скрипт **start.sh** без указания дополнительных параметров.
### Настройка файла hosts
Для доступа к сайту, веб клиентам информационных баз или доступу через конфигуратор необходимо сконфигурировать файл **hosts**.
В файл **hosts** требуется добавить следующю строку
```bash
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` и выполнить команду
```bash
docker-compose down
```