次のドッカーファイルがあります。基本イメージrundeckpro / runner:latest; Pythonがインストールされていません。イメージが構築された後、python3.10とpython3.11という2つのバージョンのPythonがあります。しかし、私はpython3.11だけを要求しました。これには理由がありますか?これを避けることはできますか?
ARG RUNNER_VERSION=latest
FROM rundeckpro/runner:${RUNNER_VERSION}
ARG PYTHON_VERSION=python3.11
ARG DEBIAN_FRONTEND=noninteractive
USER root
RUN apt-get update && \
apt-get install -y --no-install-recommends software-properties-common && \
apt-get install -y --no-install-recommends gpg-agent && \
add-apt-repository -y ppa:deadsnakes/ppa && \
apt-get install -y --no-install-recommends $PYTHON_VERSION && \
apt-get install -y --no-install-recommends $PYTHON_VERSION-venv && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
USER runner
答え1
rundeckpro/runner
現在、Ubuntu 22.04に基づいており、22.04のPythonのデフォルトバージョンは3.10です。software-properties-common
Pythonによって異なりますので、インストール時に最終的にpython3.10
。
software-properties-common
インストールするだけでいいからデッドスネークPPA、PPAをインストールした後に削除できます。
RUN apt-get update && \
apt-get install -y --no-install-recommends software-properties-common gpg-agent && \
add-apt-repository -y ppa:deadsnakes/ppa && \
apt-get purge -y --autoremove software-properties-common gpg-agent && \
apt-get install -y --no-install-recommends $PYTHON_VERSION && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
これはあなたに与えるでしょうが、python3.11
そうではありませんpython3.10
。
残念ながら、python3.11-venv
Dead Snake PPAでも状況によって異なりpython3-distutils
ます。python3
python3.10
また、あえて代替品を探さないでください。 Pythonパッケージは代替手段を使用しません。必要に応じて、python3
次のリンクでリンクしてください。
ln -sf python3.11 /usr/bin/python3
python3
(ただし、パッケージがインストールされている場合、これが問題を引き起こす可能性があることに注意してください。パッケージに必要な場合は、python3
シンボリックリンクを単独にして明示的python3.11
に使用する必要があります。)