为什么当我将nginx添加到docker时出现错误:/ bin / sh:pip:not found

时间:2019-05-03 03:08:34

标签: docker nginx flask pip docker-compose

如果我添加

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。

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

2 个答案:

答案 0 :(得分:0)

this issue中所述:

  

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

     

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

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

答案 1 :(得分:0)

使用“ FROM nginx:1.16”代替“ FROM nginx:1.16-alpine”。高山图像没有合适的位置。使用“ nginx:1.16”,您可以使用apt安装额外的软件包。

FROM指令告诉Docker守护程序从映像扩展。您不能扩展2张不同的图片。

让我知道这是否有帮助。