Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基于CentOS7.3基础镜像编译构建Python3.9.16可用于生产环境的最小基础镜像

基于CentOS7.3基础镜像编译构建Python3.9.16可用于生产环境的最小基础镜像

作者头像
耕耘实录
发布于 2023-12-18 03:58:23
发布于 2023-12-18 03:58:23
31200
代码可运行
举报
文章被收录于专栏:耕耘实录耕耘实录
运行总次数:0
代码可运行

本文介绍镜像构建解决所有报错,并设置时区、字符集,可直接应用于生产环境,不妥之处欢迎指正。centos-7.3.1611-x86_64-docker.tar.xz包下载参见:https://gitee.com/cxwn/images.git

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM scratch as PYTHON

ARG OS_XZ="centos-7.3.1611-x86_64-docker.tar.xz"
ARG PYTHON_VERSION="3.9.16"
ARG OPENSSL_VERSION="3.0.8"

ADD [ "${OS_XZ}", "/" ]
ADD [ "Python-${PYTHON_VERSION}.tar.xz", "/" ]
ADD [ "openssl-${OPENSSL_VERSION}.tar.gz", "/" ]

ENV LC_ALL="C"

RUN set -eu; \
    yum install -y gcc \
                   make \
                   perl \
                   zlib-devel \
                   bzip2-devel \
                   ncurses-devel \
                   sqlite-devel \
                   readline-devel \
                   tk-devel \
                   gdbm-devel \
                   xz-devel \
                   libffi-devel \
                   uuid-devel \
                   perl-IPC-Cmd

RUN set -eu; \
    cd /openssl-${OPENSSL_VERSION}; \
    ./config --prefix=/usr/local; \
    make -j `nproc`; \
    make install; \
    make clean; \
    echo "/usr/local/lib64">/etc/ld.so.conf.d/ld.local.conf; \
    echo "/usr/local/lib">>/etc/ld.so.conf.d/ld.local.conf; \
    ldconfig; \
    cd /Python-${PYTHON_VERSION}; \
    ./configure \
        --enable-optimizations \
        --with-lto \
        --enable-shared \
        --enable-ipv6 \
        --enable-loadable-sqlite-extensions \
        --with-ssl-default-suites=openssl \
        --enable-option-checking=fatal \
        --with-system-expat \
        --with-openssl=/usr/local \
        --prefix=/usr/local; \
    make -j `nproc`; \
    make install; \
    make clean; \
    ldconfig; \
    yum clean all

FROM scratch AS OS

ARG OS_XZ="centos-7.3.1611-x86_64-docker.tar.xz"
ADD [ "${OS_XZ}", "/" ]

COPY \
    --from=PYTHON /usr/local /usr/local

ENV TZ="Asia/Shanghai" \
    LANG="zh_CN.UTF-8" \
    LC_ALL="C"

RUN set -eu; \
    yum install -y glibc-langpack-zh \
                   zlib-devel \
                   bzip2-devel \
                   ncurses-devel \
                   sqlite-devel \
                   readline-devel \
                   tk-devel \
                   gdbm-devel \
                   xz-devel \
                   libffi-devel \
                   uuid-devel; \
    yum clean all

RUN set -eu; \
    ln -sf /usr/local/bin/python3 /usr/bin/python3; \
    ln -sf /usr/local/bin/python3.10 /usr/bin/python3; \
    ln -sf /usr/local/bin/pip3.10 /usr/bin/pip3; \
    echo "/usr/local/lib">/etc/ld.so.conf.d/ld.local.conf; \
    echo "/usr/local/lib64">>/etc/ld.so.conf.d/ld.local.conf; \
    ldconfig; \
    python3 -m pip install --upgrade pip; \
    python3 -c "import sysconfig; print(sysconfig.get_config_var('CONFIG_ARGS'))"

FROM scratch

ARG OS_XZ="centos-7.3.1611-x86_64-docker.tar.xz"
ADD [ "${OS_XZ}", "/" ]

LABEL \
    AUTHOR="IVAN DU" \
    DATE="2023-03-07" \
    VERSION="1.0.0" \
    PYTHON_VERSION="3.9.16"

ENV TZ="Asia/Shanghai" \
    LANG="zh_CN.UTF-8" \
    LC_ALL="C"

COPY \
    --from=OS /usr /usr
COPY \
    --from=OS /etc /etc

CMD [ "/usr/local/bin/python3" ]

官方镜像915MB,使用本文Dockerfile构建镜像619MB,体积压缩32%。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python3_01.python3.
本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2015-11/124908.htm
py3study
2020/01/03
4320
基于AnolisOS国产操作系统打造Python3.11.0容器基础开发环境
随着国内操作系统市场的不断发展,AnolisOS作为一款优秀的国产操作系统,逐渐受到了广大开发者的关注。为了满足Python开发者的需求,本文将介绍如何基于AnolisOS打造Python3.11.0容器基础开发环境,为开发者提供更高效、更稳定的开发体验。
耕耘实录
2023/12/18
4980
Python的安装部署
为了更好的学习,我们在Windows和Linux上都安装Python 2.7和Python 3.5
py3study
2020/01/08
4260
Python3安装
一、安装编译环境 yum install -y gcc zlib zlib-devel python-devel libffi-devel python-setuptools sqlite-devel
py3study
2020/01/03
6130
CentOS 6.9编译安装python
# yum -y groupinstall "Development tools"
py3study
2020/01/06
7520
CentOS 6.9编译安装python
CentOS6.5 安装Python3.
yum groupinstall "Development tools" yum install  gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
py3study
2020/01/07
6030
【python】--python2与py
(因为我是在docker下启动的Linux, p_w_picpath中很多包没有装)
py3study
2020/01/03
8740
CentOS6编译安装Python2.7
  CentOS6.x系统中一直沿用的都是Python2.6.x(目前最新版本是python-2.6.6),有时不能满足某些应用生产环境和开发环境的需要,直接从yum官方仓库和epel中安装Python2.7(目前最新版本是python-2.7.12)似乎也是没有什么可能,除非使用更三方的软件源。CentOS6.x系统中有很多系统组件是使用Python2.6的,比如刚才提到的yum,但yum不一定是唯一依赖Python2.6的程序,尽管一般的生产环境中不会使用到特别混杂的运行环境,但在使用的过程中需要留意某些工具&程序是否能在Python2.7下正常运行。
会长君
2023/04/26
3360
CentOS 6.5 安装Python 3.5
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
用户8710643
2021/06/09
4850
【详解】CentOS升级openssl为最新版
在服务器管理中,保持软件的最新状态对于安全性和性能至关重要。​​OpenSSL​​ 是一个开源的加密库,用于实现安全套接层(SSL)和传输层安全(TLS)协议。随着新漏洞的不断发现,定期更新 ​​OpenSSL​​ 至最新版本是维护系统安全的重要步骤。
大盘鸡拌面
2025/01/07
4590
Python多平台开发环境部署
在撸胳膊挽袖子准备大干一场之前,我们得对Python以及Python的编码规则要有一定了解,这样才不至于让我们写出不正确或者不够高效的Python代码来。
TestOps
2022/04/07
8370
Python多平台开发环境部署
CentOS6 Upgrade Python
CentOS6 升级Python2.7.X和Python3.X ---- 简述 由于产品需要从裸机开始开发所以所有的配置和开发也是从零开始,这个导航是基于centos6.x版本升级默认的Centos的Python,升级到Python2.7或者Python3.3。我们不仅升级了Python,同样基于Python的setuptools, pip, virtualenv and pyvenv这些工具也同样安装和升级以便于项目需要。 安装基本的开发工具包 为了确保编译Python成功,先安装下面的这几个packag
吕海峰
2018/04/03
8900
CentOS 6编译安装python 3
# yum -y groupinstall "Development tools"
py3study
2020/01/07
9180
CENTOS 安装python双版本(2
CentOS6使用Python2.6.6作为系统默认的python,几个关键的系统实用程序都是以它作为开发语言的,例如yum,如果对默认的Python解释器进行升级将使得这是程序无法使用。 所有关键是要把其他版本的Python安装的在/usr/local下(或其他一些非标准位置),使他们能够与系统版本的python2.6.6并存。
py3study
2020/01/06
8590
python3、ipython3、set
安装python3及ipython整体环境,非常麻烦,不注意会经常报错,安装不成功,折腾了一天才搞定,流程记录如下:
py3study
2020/01/06
5030
Linux安装python2.7
官网地址:https://www.python.org/downloads/ 1、Linux下安装(其他系统请自行前往官网安装) --- 安装依赖包 # cd /usr/local # yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y # wget https://www.python.org/ftp/python/2.7.7/
試毅-思伟
2019/06/25
1.6K0
Docker 基于Dockerfile创建镜像实践
简单说,就是创建一个服务型的镜像,即运行基于该镜像创建的容器时,基于该容器自动开启一个服务。具体来说,是创建一个部署了nginx,uwsgi,python,django项目代码的镜像,运行基于该镜像创建的容器时,自动开启nginx,uwsgi等服务。简单理解就是在容器内部,通过nginx+uwsgi部署Django项目
授客
2021/08/18
8840
烂泥:python2.7和python3
前几天在centos6.6安装ansible时,一直提示python版本不对,导致不能安装。只能手工进行手工安装python,为了以后不再添这个坑,特记录相关的安装过程。
py3study
2020/01/06
6420
rhel7.4编绎安装python3.7
Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7版本,默认的python被系统很多程序所依赖,比如centos下的yum就是python2写的,所以默认版本不要轻易删除,否则会有一些问题,如果需要使用最新的Python3那么我们可以编译安装源码包到独立目录,这和系统默认环境之间是没有任何影响的,python3和python2两个环境并存即可。
py3study
2020/01/15
7300
CentOS6 编译安装LNMP步骤
# 手动安装lnmp 包含 libiconv libunwind gperftools libmcrypt mhash mcrypt libpng freetype jpeg gd pcre libmemcached php_memcached(memcached.so)  eaccelerator ZendOptimizer MySQL5.5 php5.3 nginx1.2.7 memcached tokyocabinet tokyotyrant #路径 程序存放      /data/service lib or common /data/service/common 数据存放      /data/data 日志存放      /data/logs
星哥玩云
2022/06/28
5160
相关推荐
python3_01.python3.
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验