1
0
mirror of https://github.com/agibalovsa/-1C_DevOps.git synced 2025-10-08 23:22:16 +02:00
Files
rarus_1c_devops/README.md
agibalovsa c4880e6972 Выполнены задачи:
- Дополнение README.MD информацией по работе со скриптом init.sh.
2025-09-24 13:41:28 +03:00

8.9 KiB

1C-DevOps

Описание

В данном репозитории находятся файлы настроек для создания docker образов и развертывания docker контейнеров приложений, относящихся к разработке на платформах 1С:Предприятие, 1С:Элемент, 1С:Исполнитель.

Структура репозитория

  • build_deb - каталог, в котором находятся скрипты сборки deb-пакетов.
  • docker - каталог для работы с docker.
    • applications - каталоги с файлами настроек под конкретное приложении.
      • build - каталог, в котором находятся файлы описания сборки docker-образов
        • dockerfile - основной файл описания сборки docker-образа.
        • context - каталог со скриптами установки приложений, которые вызываются из dockerfile.
        • .arg.tmpl - шаблон файла для задания аргументов сборки образа.
        • docker-build.sh - шаблон скрипта запуска сборки docker-образа.
        • entrypoint.sh - скрипт-точка-входа описывающий поведение контейнеров при его запуске.
        • прочие файлы скриптов и настроек, передаваемые в 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

Системные настройки для работы репозитория

  • Необходимо установить docker https://docs.docker.com/engine/install/debian/#install-using-the-repository.

  • Необходимо установить расширенную программу envsubst.

    Внимание. Без этой программы будет не совсем корректно работать скрипт init.sh (см. ниже)

    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
    

Порядок работы с репозиторием

  • Инициализация

    Для создания образа или запуска контейнера необходимо инициализировать каталог с пользовательскими настройками с помощью скрипта docker/init.sh. При запуске скрипта открывается окно, в котором необходимо:

    • Задать имя проекта
    • Выбрать тип проекта:
      • build
      • compose
      • swarm (в работе...)
    • Выбрать приложение из списка доступных
    • Для проекта типа compose для некоторых приложений выйдет окно дополнительных настроек, для выбора дополнений функционала развертываемого стека, а именно:
      • Дополнительные файлы compose, и сопуствующих им файлы настроек
      • Данные дополнения возможны для приложений:
        • fluentbit
        • sonarqube
    • После заданий настройка проекта папке users (которая добавлена в gitignore) создадутся:
      • скрипты сборки образа
      • обощенный файл аргументов с значениями для сборки
      • скрипты разворачивания контейнера
      • обощенный файл переменных со значениями для настроек контейнера
  • Сборка образа

    • Перейти в каталог users/builds/application_name.
    • Задать значения переменных через файл .arg
    • Запустить сборку с помощью скрипта docker-build.sh.
  • Развертывание контейнера в режиме compose

    • Перейти в каталог users/compose/application_name.
    • Задать значения переменных через файл .env
    • Развернуть среду с помощью скрипта docker-compose-up.sh
    • Проанализировать логи с помощью скрипта docker-compose-logs.sh
    • Свернуть среду с помощью скрипта docker-compose-down.sh
  • Развертывание контейнера в режиме swarm (в работе...)

Порядок работы с Portainer

  • Запуск осуществляется через web-интерфейс платформы для управления контейнерами Portainer.
  • В настройках запуска можно указать как один compose файл, так и несколько.
    • При этом указание файла common-compose.yml обязательно, там находятся основные параметры сервиса

  • Список параметров запуска приложения и значения переменных среды можно получить из файлов .env.tpml.

Важно. В настройках переменных среды в диалоговом окне portainer ОБЯЗАТЕЛЬНО убрать все кавычки, которые есть в .env.tpml. Унификация этого вопроса исследуется.

Особенности оформления dockerfile

Монтирование скриптов

RUN --mount=from=context,target=/context

Чтобы не передавать скрипты в образ с помощью секции COPY монтируется каталог со скриптами в секции RUN с помощью параметра --mount. Благодаря чему, уменьшается число слоев.

Без лишних вопросов

ARG DEBIAN_FRONTEND=noninteractive

Переменная среды DEBIAN_FRONTEND выставляется в неинтерактивный режим, чтобы избежать предупреждений вида: TERM is not set, so the dialog frontend is not usable.

Развитие репозитория

Репозиторий на текущем этапе развития не претендует на полноту описания. Его развитие будет идти по мере изучения новых механизмов и оптимизации изученных раннее. За любую помощь в дополнении или развития текущих файлов настроек автор репозитория будет очень благодарен.

Содержание

(Описание дополняется...)