如何在Dockerfile中安装Python3.8.10并升级pip适配新版Selenium
修改后的Dockerfile(适配Python 3.8.10)
ARG FFMPEG_VERSION=4.2.2 FROM ubuntu:bionic ARG FFMPEG_VERSION WORKDIR /usr/src/app # 添加FFmpeg和Python 3.8的PPA源 RUN apt-get update && apt-get install -y software-properties-common && apt-get update \ && add-apt-repository ppa:jonathonf/ffmpeg-4 \ && add-apt-repository ppa:deadsnakes/ppa RUN ln -s -f /bin/true /usr/bin/chfn \ && apt-get update && apt-get install -y \ python3.8 \ python3.8-dev \ python3.8-pip \ xvfb \ fluxbox \ ffmpeg \ dbus-x11 \ libasound2 \ libasound2-plugins\ libnss-wrapper \ alsa-utils \ alsa-oss \ pulseaudio \ pulseaudio-utils \ libffi-dev \ libssl-dev \ && mkdir /home/lithium /var/run/pulse /run/user/lithium \ && chown -R 1001:0 /home/lithium /run/user/lithium /var/run/pulse \ && chmod -R g=u /home/lithium /run/user/lithium /var/run/pulse # 设置Python 3.8为默认版本并升级pip RUN ln -s /usr/bin/python3.8 /usr/local/bin/python \ && ln -s /usr/bin/pip3.8 /usr/local/bin/pip \ && pip install --upgrade pip COPY py_requirements.txt ./ RUN pip install --no-cache-dir -r py_requirements.txt RUN apt-get update && \ apt-get install -y gnupg wget curl unzip --no-install-recommends && \ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \ echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list && \ apt-get update -y && \ apt-get install -y google-chrome-stable && \ CHROMEVER=$(google-chrome --product-version | grep -o "[^\.]*\.[^\.]*\.[^\.]*") && \ DRIVERVER=$(curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROMEVER") && \ wget -q --continue "http://chromedriver.storage.googleapis.com/$DRIVERVER/chromedriver_linux64.zip" && \ unzip chromedriver* && \ pwd && ls ENV BBB_RESOLUTION 1920x1080 ENV BBB_AS_MODERATOR false ENV BBB_USER_NAME Live ENV BBB_CHAT_NAME Chat ENV BBB_SHOW_CHAT false ENV BBB_ENABLE_CHAT false ENV BBB_REDIS_HOST redis ENV BBB_REDIS_CHANNEL chat RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install tzdata ENV TZ Europe/Vienna RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone COPY stream.py ./ COPY chat.py ./ COPY startStream.sh ./ COPY docker-entrypoint.sh ./ COPY nsswrapper.sh ./ ENTRYPOINT ["sh","docker-entrypoint.sh"] CMD ["sh","startStream.sh" ] USER 1001
关键修改说明
- 添加Python 3.8源:新增
ppa:deadsnakes/ppa源,该PPA提供Ubuntu官方不维护的旧版Python,适配Bionic版本系统。 - 替换Python依赖包:将原有的
python3-pip、python3-dev替换为python3.8、python3.8-dev、python3.8-pip,同时补充libffi-dev、libssl-dev确保Python运行依赖完整。 - 设置默认Python版本:通过软链接将系统默认的
python和pip指向Python 3.8的可执行文件,确保后续所有pip install操作都在3.8环境下执行。 - 强制升级pip:明确升级Python 3.8对应的pip版本,解决新版Selenium安装的兼容性问题。
内容的提问来源于stack exchange,提问作者JohnTerry
相关产品推荐
相关产品推荐

