Dockerfile打包Centos7+python3.10.6

文件准备

请添加图片描述
Dockerfile就是构建docker的基础设置,requirement,txt 是python依赖第三方库,Python-3.10.6.tar.xz是从https://registry.npmmirror.com/binary.html?path=python/3.10.6/下,速度快一点。

Dockerfile

FROM centos:7

#  yum 更新
RUN set -ex \
	&& yum -y install zlib-devel bzip2-devel libffi-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make wget \
	&& yum clean all \
	&& mkdir /usr/local/python \
	&& mkdir /home/data

#   复制所有文件到home/data/目录
COPY .  /home/data

RUN set -ex \
	&& cd /home/data \
	&& tar -xvJf  Python-3.10.6.tar.xz \
	&& cd Python-3.10.6 \
	&& ./configure prefix=/usr/local/python \
	&& make && make install \
	&& yum install -y epel-release \
    && yum install -y python-pip \
	&& rm -f /usr/bin/python \
	&& rm -f /usr/bin/pip \
	&& ln -s /usr/local/python/bin/python3 /usr/bin/python \
	&& ln -s /usr/local/python/bin/pip3 /usr/bin/pip

# 修复因修改python版本导致yum失效问题
RUN set -ex \
    && sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/bin/yum \
    && sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/libexec/urlgrabber-ext-down \
    && yum install -y deltarpm

# 安装python
RUN set -ex \
	&& python -V \
	&& python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

# # 安装yum 工具
RUN set -ex \
 	&& yum  install -y lrzsz \
	&& yum  install -y net-tools \
 	&& yum  install -y git \
 	&& yum  install -y zip unzip 

# 启动配置
RUN set -ex \
	&& cd /home \
 	&& pip list \
	&& echo "构建成功"

在里面先暂且不用pip下载第三方依赖库。

构建

进入文件夹内执行

sudo docker build -t demo_p:v1 .

在这里插入图片描述
docker images语句下就可以看见了
在这里插入图片描述

运行镜像以及进入容器

语句如下

运行镜像,进行重命名,方便后续操作

docker run -itd --name centos-test demo_p:v1

进入容器

docker exec -it centos-test /bin/bash

在这里插入图片描述

在容器里继续

先看下容器的基本信息

cat /etc/redhat-release
pip list
python

在这里插入图片描述
都可以正常运行,先将pip升级最新,可以使用豆瓣源。

pip install --upgrade pip  -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

还有requirements.txt

cd home/data
pip install -r requirements.txt  -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

在这里插入图片描述

等待完成,中间有几次报错,是第三方库版本号不对,去掉后面的版本就可以了。

在这里插入图片描述
在这里插入图片描述

将容器变成镜像

 docker commit 3c9382ec04aa hahaha:v1

完成后就在镜像里看见了,这个时候导出上传都可以啦
在这里插入图片描述
就酱

posted @   赫凯  阅读(674)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示