docker - docker images alpine3.14 compile nginx 1.21.1 报错,但是docker images alpine3.12 可以,为什么?
问题描述
我尝试从alpine:3.14
.
错误如下
make -f objs/Makefile
make: make: Operation not permitted
make: *** [Makefile:10: build] Error 127
然后我切换到版本alpine:3.12
,alpine:3.13 and
发现两者都可以!
以下是我基于alpine:3.14
版本编译 NGINX 的关键问题代码
# Omit irrelevant code
RUN \
addgroup -S www && adduser www -D -S -s /bin/sh -G www \
&& wget -P /home/soft https://github.com/vozlt/nginx-module-vts/archive/v0.1.18.tar.gz \
&& wget -P /home/soft http://nginx.org/download/nginx-1.21.1.tar.gz \
&& wget -P /home/soft https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz \
&& cd /home/soft && tar -zxf nginx-1.21.1.tar.gz && tar -zxf v0.1.18.tar.gz && tar -zxf pcre-8.44.tar.gz \
&& cd /home/soft/nginx-1.21.1 \
&& ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-stream --with-http_sub_module --with-pcre=/home/soft/pcre-8.44 --add-module=/home/soft/nginx-module-vts-0.1.18 \
&& make && make install \
# Omit irrelevant code
解决方案
错误 127 七可能意味着两件事。要么在 PATH 变量中找不到命令的二进制文件(请在此处注意,有时也可能发生命令找到但缺少某些库的情况)或二进制文件没有执行权限。从外观上看,我怀疑这是因为它没有执行权限。
我建议您运行 alpine:3.14 容器并检查 PATH 变量、make 二进制位置和权限。
推荐阅读
- powershell - 通过脚本从 SST 安装证书,自动选择证书存储
- windows - mongodb 在 Windows 10 中绑定到 0.0.0.0
- c# - 如何在 xamarin.ios 本机应用程序中的前台应用程序时获得推送/远程通知?
- teamcity - 删除 TeamCity 构建日志
- hibernate - 在哪里可以找到 Hibernate 的终止支持 - 支持生命周期 - 更新
- powershell - Powershell - 鼠标左键单击而不移动鼠标
- javascript - 使用 async/await 组合并发和顺序请求
- java - RxAndroid:如何从电话簿中提取所有联系人?
- maven - 如何在 Maven 中仅运行选择性测试用例
- javascript - 算术运算的右侧必须是“any”、“number”或枚举类型