/Nginx-builder

Primary LanguagePythonApache License 2.0Apache-2.0

Nginx-builder

Описание

Скрипт для сборки deb или rpm пакета Nginx требуемой версии из исходных кодов, с возможностью подключения сторонних модулей. Параметры Nginx задаются в конфигурационном файле формата yaml.

Требования

  • python >= 3.5

Установка зависимостей

pip3 install -r requirements.txt

Также потребуются пакеты для компиляции Nginx. Их перечень можно увидеть в Dockerfile

Конфигурация

Основной конфигурационный файл в yaml формате. Описание параметров:

---
nginx_version: необходимая версия nginx
output_package: тип выходного пакета deb или rpm
modules:
  - module:
      name: Название модуля. Если не указано, берется из последней части URL
      git_url: URL git файла
      git_tag: название тэга. (Не обязательно)
      git_branch: название ветки. (Не обязательно). Если не указан ни tag, ни branch по умолчанию берется master ветка
      dependencies: 
        - список зависимостей для сборки модуля (Не обязательно)
    module:
      name: Название модуля. Если не указано, берется из последней части URL
      web_url: Ссылка на архив с исходным кодом модуля
    module:
      name: Название модуля. Если не указано, берется из последней части URL
      local_url: Путь к архиву с исходным кодом модуля

Конфигурационный файл с расширенными настройками расположен в src/config.py. В большинстве случаев менять его не нужно.

Параметры запуска

Запускать сборщик можно, как непосредственно на хост машине, так и в docker контейнере, например

docker build -t nginx-builder .
docker run --rm -it -v $(pwd):/nginx-builder:rw \
  nginx-builder /bin/bash

Запуск

./main.py build -f [конфиг_файл].yaml -r [номер_ревизии]
  • номер ревизии опциональный параметр, служит для версионирования сборок