Далее соберите образ, используя Dockerfile в корне проекта (сборка под almalinux:9):
```
docker build -t nginx-mod_rewrite .
```
Получаем образ с nginx и собранным mod_rewrite.
Для запуска образа необходимо выполнить команду:
```
docker run --name nginx-mod_rewrite -p 8080:80 -p 8081:8081 nginx-mod_rewrite
```
## Сборка пакета под заданную операционную систему
В корне проекта расположен скрипт `package_preparer.sh`, который позволяет собрать rpm или deb пакет под определенную операционную систему. Под какую операционную систему и нативную версию nginx будет собран пакет, зависит от используемого образа.
работала корректно, в системе должны быть установлены и доступны следующие утилиты (каждая из которых берётся из пакета, поставляемого в вашем дистрибутиве Linux):
| Утилита | Что делает в `prepare`‑разделе | Пакет (Debian/Ubuntu) |
> В скрипте используются расширенные регулярные выражения (`sed -E`) и модификация файла на месте (`sed -i`). Это GNU‑вариант `sed`. На системах, где `sed` – BSD‑вариант (например, macOS), команда `sed -E -i` не будет работать, поэтому в таких окружениях нужно установить GNU‑`sed` (`gsed`) и заменить вызовы на `gsed`.
Docker‑демон должен быть запущен, и пользователь должен иметь права на его использование (или быть в группе `docker`).
Основная сборка происходит в docker‑контейнере, поэтому основная система не засоряется лишними пакетами. Основной набор утилит, используемых скриптом, присутствует в дистрибутиве по умолчанию, поэтому необходимо только установить docker.
Сборщик анализирует версию nginx, установленную в дистрибутиве, и производит сборку в окружении исходных файлов аналогичной версии nginx дистрибутива, а также командами, аналогичными, которые использовались при сборке nginx из дистрибутива.
## Ручная сборка из исходников
Если же необходимо собрать модуль самостоятельно, необходимо выполнить следующие команды.
Привожу пример для Almalinux 9.
Установите необходимые пакеты для сборки:
```
dnf -y install openssl-devel pcre-devel zlib-devel gcc gcc-c++ make wget
```
В корне проекта:
```
bash package_preparer.sh download 1.22.1
```
В качестве версии можно задать любую доступную на сайте `https://nginx.org/ru/download.html`, она будет скачана и распакована в текущий каталог.
Далее перейти в папку nginx-1.22.1:
```
cd nginx-1.22.1
```
и задать конфигурацию сборки. Я привожу пример конфигурации, она может отличаться; данный пример — это типичная конфигурация: