2025-04-06 18:55:52 +03:00
# 1C-DevOps
## Описание
2025-09-24 14:35:12 +04:00
В данном репозитории находятся файлы настроек для создания docker образов и развертывания docker контейнеров приложений, относящихся к разработке на платформах 1С:Предприятие, 1С:Элемент, 1С:Исполнитель.
2025-04-06 18:55:52 +03:00
2025-08-11 21:59:39 +03:00
## Структура репозитория
- build_deb - каталог, в котором находятся скрипты сборки deb-пакетов.
- docker - каталог для работы с docker.
2025-08-12 10:48:40 +03:00
- applications - каталоги с файлами настроек под конкретное приложении.
2025-08-11 21:59:39 +03:00
- build - каталог, в котором находятся файлы описания сборки docker-образов
- dockerfile - основной файл описания сборки docker-образа.
- context - каталог со скриптами установки приложений, которые вызываются из dockerfile.
- .arg.tmpl - шаблон файла для задания аргументов сборки образа.
- docker-build.sh - шаблон скрипта запуска сборки docker-образа.
2025-08-12 10:48:40 +03:00
- entrypoint.sh - скрипт-точка-входа описывающий поведение контейнеров при его запуске.
2025-08-11 21:59:39 +03:00
- прочие файлы скриптов и настроек, передаваемые в docker-образ.
- compose - каталог, в котором находятся файлы описания параметров развертывания контейнера.
- common-compose.yml - базовый файл описания настроек общих для запуска контейнера в режимах *compose* или *swarm* .
- docker-compose.yml - файл с описанием запуска контейнера в режиме *compose* .
- docker-stack.yml - файл с описанием запуска контейнера в режиме *swarm* .
- .env.tmpl - как шаблон файла для задания интерполирующих переменных запуска контейнера.
- *config.tmpl - шаблоны файлов, для создания конфигураций через docker config.
- *secret.tmpl - шаблоны файлов, для создания секретов через docker secret.
- common_context - каталог с общими скриптами и настройками как для build, так и для compose.
- init.sh - файл инициализации скриптов сборки или запуска контейнеров.
- users - динамически создаваемый каталог с пользовательскими настройками сборки или запуска контейнеров.
- .gitignore - сюда помещены:
- .env
- .arg
- users
2025-09-04 13:36:29 +03:00
## Системные настройки для работы репозитория
- Необходимо установить docker < https: // docs . docker . com / engine / install / debian / #install -using-the-repository > .
- Необходимо установить расширенную программу envsubst.
> Внимание. Без этой программы будет не совсем корректно работать скрипт init.sh (см. ниже)
```bash
curl -L https://github.com/a8m/envsubst/releases/download/v1.2.0/envsubst-`uname -s` -`uname -m` -o envsubst
chmod +x envsubst
mv envsubst /usr/local/bin
envsubst
```
2025-08-11 21:59:39 +03:00
## Порядок работы с репозиторием
- Инициализация
2025-08-15 14:46:37 +03:00
2025-08-11 21:59:39 +03:00
Для создания образа или запуска контейнера необходимо инициализировать каталог с пользовательскими настройками с помощью скрипта docker/init.sh.
При запуске скрипта открывается окно, в котором необходимо:
2025-08-15 14:46:37 +03:00
2025-08-11 21:59:39 +03:00
- Задать имя проекта
- Выбрать тип проекта:
2025-08-12 10:48:40 +03:00
- build
2025-08-15 14:46:37 +03:00
- compose
2025-08-12 10:48:40 +03:00
- swarm (в работе...)
2025-08-11 21:59:39 +03:00
- Выбрать приложение из списка доступных
2025-09-24 14:35:12 +04:00
- Для проекта типа `compose` для некоторых приложений выйдет окно дополнительных настроек, для выбора дополнений функционала развертываемого стека, а именно:
- Дополнительные файлы compose, и сопуствующих им файлы настроек
- Данные дополнения возможны для приложений:
- fluentbit
- sonarqube
- После заданий настройка проекта папке users (которая добавлена в `gitignore` ) создадутся:
- скрипты сборки образа
- обощенный файл аргументов с значениями для сборки
- скрипты разворачивания контейнера
- обощенный файл переменных со значениями для настроек контейнера
2025-08-15 14:46:37 +03:00
- Сборка образа
2025-09-24 14:35:12 +04:00
- Перейти в каталог `users/builds/application_name` .
- Задать значения переменных через файл `.arg`
2025-08-15 14:46:37 +03:00
- Запустить сборку с помощью скрипта `docker-build.sh` .
- Развертывание контейнера в режиме compose
2025-09-24 14:35:12 +04:00
- Перейти в каталог `users/compose/application_name` .
- Задать значения переменных через файл `.env`
2025-08-15 14:46:37 +03:00
- Развернуть среду с помощью скрипта `docker-compose-up.sh`
2025-09-24 14:35:12 +04:00
- Проанализировать логи с помощью скрипта `docker-compose-logs.sh`
2025-08-15 14:46:37 +03:00
- Свернуть среду с помощью скрипта `docker-compose-down.sh`
- Развертывание контейнера в режиме swarm
(в работе...)
2025-04-06 18:55:52 +03:00
2025-08-11 21:59:39 +03:00
## Порядок работы с Portainer
- Запуск осуществляется через web-интерфейс платформы для управления контейнерами Portainer.
2025-08-15 14:46:37 +03:00
- В настройках запуска можно указать как один compose файл, так и несколько.
- > При этом указание файла `common-compose.yml` < u > обязательно</ u > , там находятся основные параметры сервиса
- Список параметров запуска приложения и значения переменных среды можно получить из файлов `.env.tpml` .
2025-08-11 21:59:39 +03:00
2025-09-24 14:35:12 +04:00
> **Важно**. В настройках переменных среды в диалоговом окне portainer ОБЯЗАТЕЛЬНО убрать все кавычки, которые есть в `.env.tpml`. Унификация этого вопроса исследуется.
2025-08-12 10:48:40 +03:00
2025-09-04 13:36:29 +03:00
## Особенности оформления dockerfile
### Монтирование скриптов
```dockerfile
RUN --mount=from=context,target=/context
```
Чтобы не передавать скрипты в образ с помощью секции `COPY` монтируется каталог со скриптами в секции `RUN` с помощью параметра `--mount` . Благодаря чему, уменьшается число слоев.
### Без лишних вопросов
```dockerfile
ARG DEBIAN_FRONTEND=noninteractive
```
Переменная среды `DEBIAN_FRONTEND` выставляется в неинтерактивный режим, чтобы избежать предупреждений вида:
*TERM is not set, so the dialog frontend is not usable.*
2025-08-12 10:48:40 +03:00
## Развитие репозитория
Репозиторий на текущем этапе развития не претендует на полноту описания. Его развитие будет идти по мере изучения новых механизмов и оптимизации изученных раннее. За любую помощь в дополнении или развития текущих файлов настроек автор репозитория будет очень благодарен.
2025-04-06 18:55:52 +03:00
## Содержание
2025-04-08 18:19:43 +03:00
- Инфраструктура
- [Portainer ](docker/portainer/README.md )
- [Nginx ](docker/nginx/README.md )
- Разработка
2025-08-09 23:21:51 +03:00
- [Gitlab ](docker/gitlab-ce/README.md )
2025-04-08 18:19:43 +03:00
- [Sonarqube ](docker/sonarqube/README.md )
- Моделирование
- [Diagrams ](docker/diagrams/README.md )
2025-07-17 09:55:16 +03:00
2025-08-12 10:48:40 +03:00
(Описание дополняется...)