我正在将请求安装在Docker容器中以在python脚本中使用它。这是我的docker文件。
# stage1 as builder
FROM node:10-alpine as builder
FROM python:3.7
FROM nginx:alpine
RUN pip install --upgrade pip && \
pip install requests
WORKDIR /opt/
ADD init.py /opt/
RUN python init.py
## Remove default nginx index page
RUN rm -rf /usr/share/nginx/html/*
WORKDIR /opt/app-ui
# copy the package.json to install dependencies
COPY agentform/dist/agentform/* /usr/share/nginx/html/
EXPOSE 4200 80
ENTRYPOINT ["nginx", "-g", "daemon off;"]
docker-compose构建显示以下错误。
Step 4/12 : RUN pip install --upgrade pip && pip install requests
---> Running in e7ad71640bb3
/bin/sh: pip: not found
ERROR: Service 'web' failed to build: The command '/bin/sh -c pip install --upgrade pip && pip install requests' returned a non-zero code: 127
答案 0 :(得分:0)
根据文档:
对于多阶段构建,您可以在Dockerfile中使用多个FROM语句。每个FROM指令可以使用不同的基数,并且每个都开始构建的新阶段。您可以有选择地将工件从一个阶段复制到另一个阶段,从而在最终图像中留下不需要的所有内容。为了展示它是如何工作的,让我们调整上一节中的Dockerfile以使用多阶段构建。 https://docs.docker.com/develop/develop-images/multistage-build/
因此,最终图像中不存在pip,因为在获取python之后您将获得FROM nginx:alpine
我认为最好的解决方案是在最后一个FROM之前进行pip安装,并按照此处的建议进行操作:https://pythonspeed.com/articles/multi-stage-docker-python/