docker - 为什么当我将 nginx 添加到 docker 时会出现错误:/bin/sh: pip: not found
问题描述
如果我添加
FROM nginx:1.16-alpine
对于我的 Dockerfile,我的构建因错误而中断:
/bin/sh: pip: not found
我尝试通过以下方式发送更新命令:
RUN set -xe \
&& apt-get update \
&& apt-get install python-pip
但后来我得到了无法找到 apt-get 的错误。
这是我的 Dockerfile:
FROM python:3.7.2-alpine
FROM nginx:1.16-alpine
ENV INSTALL_PATH /web
RUN mkdir -p $INSTALL_PATH
WORKDIR $INSTALL_PATH
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD gunicorn -b 0.0.0.0:9000 --access-logfile - "web.webhook_server:create_app()"
如果我删除那一行:
FROM nginx:1.16-alpine
一切运行良好。但当然,我需要 nginx。
这里可能出了什么问题?我很困惑。
解决方案
如本期所述:
使用多个 FROM 并不是真正的功能,而是一个错误 [...]
请注意:
- 有讨论删除对多个 FROM 的支持:#13026
所以你应该决定一个最适合你的图像,然后通过RUN apk add安装你需要的必要包。请注意,您用作基础的两个映像都基于alpine linux,您需要使用apk
而不是apt-get
安装软件包。
推荐阅读
- amazon-web-services - AWS lambda 无服务器图像处理程序签名 URL 无法获取 NoSuchKey
- spring - SpringBoot:测试服务层
- python - 用于 pip freeze 的 subprocess.popen 未返回包列表
- c# - 无法在控件属性中使用代码块
- c# - Swagger UI 不会使用 [FromBody] 参数列出我的 Post 方法
- java - 如何使用 vert.x 对工人 Verticle 应用并发处理
- amazon-s3 - AWS S3 ObjectCreated 延迟触发 lambda
- javascript - 使用范围之外的异步 javascript 值
- testing - 当非顺序优先级时,TestNG 优先级注释不起作用
- r - 为什么执行对数转换的 Log1p 不绘制为标准化直方图?