-y install wget
RUN wget 'http://nginx.org/download/nginx-1.21.6.tar.gz'
RUN tar -xzvf nginx-1.21.6.tar.gz
RUN apt-get install -y git
RUN apt-get install -y gcc
RUN apt-get install -y make
RUN apt-get install -y libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
WORKDIR nginx-1.21.6
RUN apt-get install -y mercurial
RUN hg clone http://hg.nginx.org/njs
RUN git clone https://github.com/openresty/redis2-nginx-module
RUN ./configure --prefix=/etc/nginx --modules-path=/etc/nginx/modules --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --add-module=redis2-nginx-module --add-module=njs/nginx
RUN make -j2
RUN make install
WORKDIR ../
COPY /nginx /etc/nginx
EXPOSE 80
ENTRYPOINT ["nginx", "-g", "daemon off;"]
и после запуска контейнера я получаю ошибку: "nginx: [emerg] dlopen() "/etc/nginx/modules/ngx_http_js_module.so" failed (/etc/nginx/modules/ngx_http_js_module.so: cannot open shared object file: No such file or directory) in /etc/nginx/nginx.conf:1" и папка с модулем, которую я указал в modules-path пустая, даже сама папка модулей не создалась. Что я делаю не так?
мб COPY ./nginx /etc/nginx
с копи то все нормально, у меня модули не собираются
Выведи после make install содержимое папки с модулями
я ж написал что сама папка модулей даже не создалась)
Она пустая после сборки или после запуска?
и после сборки, и после запуска
В логах что?
в еррор логе ничего такого нет
В логах сборки
https://pastebin.com/Uc5By9df вот полный билд лог, вроде ничего такого, нормально сконфигурились модули
Как запускаешь контейнер?
Не вижу в логах вывода ls -lsah /etc/nginx/modules, который мог бы подтвердить эти слова
docker run -p 8082:80 -t nginx-double-ratchet .
ок, щас соберу с этим, но там реально нет даже папки модулей
https://pastebin.com/CCa1LLWw
https://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus/amp/ Step 3 Там используется аргумент --add-dynamic-module, и собранные модули ручками копируются
да, уже поправил, спасибо
Обсуждают сегодня