다음 도커 파일이 있습니다. 기본 이미지 rundeckpro/runner:latest; Python이 설치되어 있지 않습니다. 이미지가 빌드된 후에는 python3.10과 python3.11이라는 두 가지 버전의 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
명시적으로 사용해야 합니다.)