在不使用 python 图像作为基础的情况下在 Dockerfile 中安装 python
Installing python in Dockerfile without using python image as base
我有一个 python 脚本,它使用我想要容器化的 DigitalOcean 工具(doctl 和 kubectl)。这意味着我的容器需要安装 python、doctl 和 kubectl。问题是,我想出了如何在 dockerfile 中同时安装 python 和 DigitalOcean 工具。
我可以使用基本映像“python:3”安装 python,我还可以使用基本映像“alpine/doctl”安装 DigitalOcean 工具。但是,规则是您只能在 dockerfile 中使用一个基础镜像。
所以我可以包含 python 基本映像并以另一种方式安装 DigitalOcean 工具:
FROM python:3
RUN <somehow install doctl and kubectl>
RUN pip install firebase-admin
COPY script.py
CMD ["python", "script.py"]
或者我可以包含 alpine/doctl 基本映像并以其他方式安装 python3。
FROM alpine/doctl
RUN <somehow install python>
RUN pip install firebase-admin
COPY script.py
CMD ["python", "script.py"]
不幸的是,我不确定该怎么做。如果能帮助我安装所有这些工具,那就太好了!
只需将此与您想要的任何其他内容一起添加即可 apt-get install
:
RUN apt-get update && apt-get install -y \
python3.6 &&\
python3-pip &&\
在高山中应该是这样的:
RUN apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python &&\
python3 -m ensurepip &&\
pip3 install --no-cache --upgrade pip setuptools &&\
这个 Dockerfile 对我有用:
FROM alpine/doctl
ENV PYTHONUNBUFFERED=1
RUN apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python
RUN python3 -m ensurepip
RUN pip3 install --no-cache --upgrade pip setuptools
这个答案来自这里:( 我没有足够的街头信誉来发表评论)
您可以尝试如下所示的多阶段构建。
还要检查您的复制语句,您需要定义要将 script.py 文件复制到的位置作为第二个参数。 "." 将其复制到根目录
FROM alpine/doctl
FROM python:3.6-slim-buster
ENV PYTHONUNBUFFERED 1
RUN pip install firebase-admin
COPY script.py .
CMD ["python", "script.py"]
我有一个 python 脚本,它使用我想要容器化的 DigitalOcean 工具(doctl 和 kubectl)。这意味着我的容器需要安装 python、doctl 和 kubectl。问题是,我想出了如何在 dockerfile 中同时安装 python 和 DigitalOcean 工具。
我可以使用基本映像“python:3”安装 python,我还可以使用基本映像“alpine/doctl”安装 DigitalOcean 工具。但是,规则是您只能在 dockerfile 中使用一个基础镜像。
所以我可以包含 python 基本映像并以另一种方式安装 DigitalOcean 工具:
FROM python:3
RUN <somehow install doctl and kubectl>
RUN pip install firebase-admin
COPY script.py
CMD ["python", "script.py"]
或者我可以包含 alpine/doctl 基本映像并以其他方式安装 python3。
FROM alpine/doctl
RUN <somehow install python>
RUN pip install firebase-admin
COPY script.py
CMD ["python", "script.py"]
不幸的是,我不确定该怎么做。如果能帮助我安装所有这些工具,那就太好了!
只需将此与您想要的任何其他内容一起添加即可 apt-get install
:
RUN apt-get update && apt-get install -y \
python3.6 &&\
python3-pip &&\
在高山中应该是这样的:
RUN apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python &&\
python3 -m ensurepip &&\
pip3 install --no-cache --upgrade pip setuptools &&\
这个 Dockerfile 对我有用:
FROM alpine/doctl
ENV PYTHONUNBUFFERED=1
RUN apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python
RUN python3 -m ensurepip
RUN pip3 install --no-cache --upgrade pip setuptools
这个答案来自这里:(
您可以尝试如下所示的多阶段构建。
还要检查您的复制语句,您需要定义要将 script.py 文件复制到的位置作为第二个参数。 "." 将其复制到根目录
FROM alpine/doctl
FROM python:3.6-slim-buster
ENV PYTHONUNBUFFERED 1
RUN pip install firebase-admin
COPY script.py .
CMD ["python", "script.py"]