Tool for building deb
or rpm
package [Nginx] (http://nginx.org/) of the required version from the source code, with the ability to connect third-party modules.
Nginx parameters are set in the configuration file of yaml format.
Инструмент для сборки deb
или rpm
пакета Nginx требуемой версии из исходных кодов, с возможностью подключения сторонних модулей.
Параметры Nginx задаются в конфигурационном файле формата yaml.
Now we are at the Docker hub: https://cloud.docker.com/repository/docker/tinkoffcreditsystems/nginx-builder
Теперь мы есть и на Docker hub: https://cloud.docker.com/repository/docker/tinkoffcreditsystems/nginx-builder
You can start the assembler both directly on the host machine and in the docker container, for example
Запускать сборщик можно, как непосредственно на хост машине, так и в docker контейнере, например
docker run --rm -it -v $(pwd):/nginx-builder:rw tinkoffcreditsystems/nginx-builder:centos-latest /bin/bash
docker run --rm -it -v $(pwd):/nginx-builder:rw tinkoffcreditsystems/nginx-builder:ubuntu-latest /bin/bash
The main configuration file is in yaml format. Description of parameters:
---
nginx_version: the necessary version of nginx
output_package: type of output package deb or rpm
modules:
- module:
name: The name of the module. If not specified, taken from the last part of the URL
git_url: git file URL
git_tag: The name of the tag. (Optional)
git_branch: The name of the branch. (Optional). If neither tag nor branch is specified, the master branch is taken by default
patch: Relative path to patch for source code. (Optional)
dependencies:
- list of dependencies for building the module (Optional)
module:
name: The name of the module. If not specified, taken from the last part of the URL
web_url: Link to the archive with the module source code
module:
name: The name of the module. If not specified, taken from the last part of the URL
local_url: Path to the module source code archive
module:
name: The name of the embedded module
type: embedded
configure_params: list of custom build parameters
The configuration file with advanced settings is located in src/config.py
. In most cases it does not need to be changed.
Основной конфигурационный файл в yaml формате. Описание параметров:
---
nginx_version: необходимая версия nginx
output_package: тип выходного пакета deb или rpm
modules:
- module:
name: Название модуля. Если не указано, берется из последней части URL
git_url: URL git файла
git_tag: название тэга. (Не обязательно)
git_branch: название ветки. (Не обязательно). Если не указан ни tag, ни branch по умолчанию берется master ветка
patch: Относительный путь к патчу для исходного кода. (Не обязательно).
dependencies:
- список зависимостей для сборки модуля (Не обязательно)
module:
name: Название модуля. Если не указано, берется из последней части URL
web_url: Ссылка на архив с исходным кодом модуля
module:
name: Название модуля. Если не указано, берется из последней части URL
local_url: Путь к архиву с исходным кодом модуля
module:
name: Название модуля встроенного модуля
type: embedded
configure_params: список дополнительных параметров сборки
Конфигурационный файл с расширенными настройками расположен в src/config.py
. В большинстве случаев менять его не нужно.
- python >= 3.5
You will also need packages to compile Nginx. Their list can be seen in the Dockerfile.
pip3 install -r requirements.txt
./main.py build -f [config_file].yaml -r [revision_number]
- revision number optional parameter, used to version assemblies
Также потребуются пакеты для компиляции Nginx. Их перечень можно увидеть в Dockerfile
pip3 install -r requirements.txt
./main.py build -f [конфиг_файл].yaml -r [номер_ревизии]
- номер ревизии опциональный параметр, служит для версионирования сборок