首页 > 解决方案 > 为什么当我将 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。

这里可能出了什么问题?我很困惑。

标签: dockernginxflaskpipdocker-compose

解决方案


本期所述:

使用多个 FROM 并不是真正的功能,而是一个错误 [...]

请注意:
- 有讨论删除对多个 FROM 的支持:#13026

所以你应该决定一个最适合你的图像,然后通过RUN apk add安装你需要的必要包。请注意,您用作基础的两个映像都基于alpine linux,您需要使用apk而不是apt-get安装软件包。


推荐阅读