作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!


在某个基础镜像中,安装了python3.6。但是一个测试需要python3.8的版本,于是通过dockerfile实现了更换新版本的镜像。

下面直接上Dockerfile的源码:

FROM centos_xxx:0.0.1   # 源自某个linux的基础镜像

#MAINTAINER 维护者信息
LABEL MAINTAINER="ahfuzhang" #ENV PATH /usr/local/bin:$PATH
ENV LANG C.UTF-8 ENV TZ=Asia/Shanghai # 为了编译python,这三个库必须要装
RUN yum install -y zlib-devel
RUN yum install -y libffi-devel
RUN yum install -y openssl-devel RUN wget 'https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz' # 下载python源码
RUN mkdir /usr/local/python3 && \
tar -zxvf Python-3.8.13.tgz && \
cd Python-3.8.13 && \
./configure --prefix=/usr/local/python3 && \
make && \
make install && \
rm -f /usr/bin/python3 && \
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3 && \
cd .. && \
rm -fdr Python-3.8.13 Python-3.8.13.tgz
# 以上就是下载,解压,configure, 编译,安装,建立软链接 # 还需要安装pip
RUN wget 'https://files.pythonhosted.org/packages/4a/25/ec29a23ef38b9456f9965c57a9e1221e6c246d87abbf2a31158799bca201/setuptools-62.3.2.tar.gz'
RUN tar -zxvf setuptools-62.3.2.tar.gz && \
cd setuptools-62.3.2 && \
python3 setup.py install && \
cd .. && \
rm -fdr setuptools-62.3.2.tar.gz setuptools-62.3.2 RUN wget 'https://files.pythonhosted.org/packages/4b/b6/0fa7aa968a9fa4ef63a51b3ff0644e59f49dcd7235b3fd6cceb23f202e08/pip-22.1.2.tar.gz'
RUN tar -zxvf pip-22.1.2.tar.gz && \
cd pip-22.1.2 && \
python3 setup.py install && \
cd .. && \
rm -fdr pip-22.1.2.tar.gz pip-22.1.2 # 顺带把几个python需要的库也装了
RUN python3 -m pip install protobuf
RUN python3 -m pip install gevent
RUN python3 -m pip install requests
RUN python3 -m pip install python-snappy RUN mkdir -p /data
ADD example/ /data/ WORKDIR /data/
#ENTRYPOINT ["python", "main.py"]

感觉挺蠢的,但毕竟还是解决了。期待网友给出更好的解决办法,谢谢!

【解决了一个小问题】在某个linux基础镜像中安装python特定的版本的更多相关文章

  1. 【解决了一个小问题】golang protocol buffers 3中去掉json标签中的omitempty

    参考了这篇帖子:golang protobuf从生成的json标记中删除omitempty标记 由于是在windows上开发,因此写了一个python脚本来解决: remove_tag.py impo ...

  2. 【解决了一个小问题】golang的go.mod中出现版本错误

    代码中的这一句使用prometheus2.28.0版本的代码: import "github.com/prometheus/prometheus/prompb" 我把require ...

  3. 【转】linux和windows下安装python集成开发环境及其python包

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  4. linux和windows下安装python拓展包及requirement.txt安装类库

    python拓展包安装 直接安装拓展包默认路径: Unix(Linux)默认路径:/usr/local/lib/pythonX.Y/site-packagesWindows默认路径:C:\Python ...

  5. Linux基础环境_安装配置教程(CentOS7.2 64、JDK1.8、Tomcat8)

    Linux基础环境_安装配置教程 (CentOS7.2 64.JDK1.8.Tomcat8) 安装包版本 1)     VMawre-workstation版本包 地址: https://my.vmw ...

  6. Python原来这么好学-1.2节: 在Linux中安装python

    这是一本教同学们彻底学通Python的高质量学习教程,认真地学习每一章节的内容,每天只需学好一节,帮助你成为一名卓越的Python程序员: 本教程面向的是零编程基础的同学,非科班人士,以及有一定编程水 ...

  7. Linux CentOS 编绎安装Python 3.5

    Linux CentOS 编绎安装Python 3.5 先决条件(若无安装,则不能编绎使用idle3):yum install tk-devel xz -d Python-3.5.0.tar.xzta ...

  8. 在 Linux服务器中安装 Python 3.6

    一.服务器环境配置 在 CentOS 7 中安装 Python 之前,请确保系统中已经有了所有必要的开发依赖: # yum -y groupinstall development # yum -y i ...

  9. CentOS6安装各种大数据软件 第三章:Linux基础软件的安装

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  10. [书接上一回]在Oracle Enterprise Linux (v5.7) 中安装DB - (3/4)

    安装p10404530_112030_Linux-x86-64_6of7.zip解压下的example. 修改软件路径,为dbhome_1. 安装好数据,则可以进行快照操作! 删除安装文件. 输入db ...

随机推荐

  1. 无法停止服务、无法终止 PID 4100 的进程

    服务中无法停止服务. 先查出服务对应的进程 Microsoft Windows [版本 10.0.19043.1348] (c) Microsoft Corporation.保留所有权利. C:\Us ...

  2. Java 网络编程 —— 异步通道和异步运算结果

    从 JDK7 开始,引入了表示异步通道的 AsynchronousSockerChannel 类和 AsynchronousServerSocketChannel 类,这两个类的作用与 SocketC ...

  3. websever

    1 在浏览器键入url,按下回车会经历如下行为 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址; 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立 TC ...

  4. Windows线程开发

    Windows线程开发 1.线程基础 Windows线程是可以执行的代码实例.系统十一线程为单位调度程序.一个程序当中可以有多个线程,实现多个任务的处理. Windows线程的特点: 线程都具有1个I ...

  5. three.js 火焰效果

    代码是网上找的代码,通过调参.修改.封装实现的. 代码: /** * 火焰 */ import * as THREE from '../build/three.module.js'; let MyFi ...

  6. 深度学习降噪专题课:实现WSPK实时蒙特卡洛降噪算法

    大家好~本课程基于全连接和卷积神经网络,学习LBF等深度学习降噪算法,实现实时路径追踪渲染的降噪 本课程偏向于应用实现,主要介绍深度学习降噪算法的实现思路,演示实现的效果,给出实现的相关代码 线上课程 ...

  7. C#约瑟夫环问题算法

    /// <summary> /// 约瑟夫环问题算法 /// </summary> /// <param name="total">总人数< ...

  8. I/O多路复用与socket

    前言 简单来讲I/O多路复用就是用一个进程来监听多个文件描述符(fd),我们将监听的fd通过系统调用注册到内核中,如果有一个或多个fd可读或可写,内核会通知应用程序来对这些fd做读写操作,select ...

  9. idea相关配置及插件安装

    对idea相关的配置及好用的插件进行总结下. 一.idea 破解码及配置:https://www.jb51.net/softs/672190.html 二.idea插件: 1.findBugs-ide ...

  10. Verilog Review

    Agenda 目的 Verilog概述 Verilog建模 模块 模块组成 书写建议 时延 Verilog基本语法 标识符 可读性 注释 空格 数据类型 操作数 运算符 条件语句 循环语句 函数 Ve ...