簡體   English   中英

使 Docker 容器使用安裝的最新版本的 Python

[英]Make Docker container use newest version of Python installed

我在 Docker 容器中使用了幾個 Python 模塊,它們需要使用更高版本的 Python。 我安裝 Python 並使用以下方法安裝模塊:

RUN apt-get update || : && apt-get install python3 -y
RUN apt-get install -y python3-pip
COPY requirements.txt /project
RUN pip3 install -r requirements.txt

期望我會在我的 Docker 容器中使用最新版本的 Python,但是當我進入它的 shell 並運行python3 --version ,它是3.4.2 ,這對我的程序來說太舊了。 如何使默認 Python 成為我上面安裝的最新版本,而不會弄亂系統級 Python?

我用於 Docker 容器的圖像運行時是: node:9-slim

我認為您無法在 debian 8 發行版上找到預構建的 python3.9 包,因為您的環境很舊。

唯一的解決方案是從基礎容器中的源代碼構建 python3.9。 一個完整的 Dockerfile 如下:

FROM node:9-slim

RUN apt update; \
apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev; \
wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz; \
tar -zxvf Python-3.9.7.tgz; \
cd Python-3.9.7; \
./configure --prefix=/usr/local/python3; \
make && make install; \
ln -sf /usr/local/python3/bin/python3.9 /usr/bin/python3; \
ln -sf /usr/local/python3/bin/pip3.9 /usr/bin/pip3

驗證一下:

$ docker build -t myimage:1 .
$ docker run --rm -it myimage:1 python3 --version
Python 3.9.7
$ docker run --rm -it myimage:1 pip3 --version
pip 21.2.3 from /usr/local/python3/lib/python3.9/site-packages/pip (python 3.9)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM