Docker镜像里安装Python环境(转载)

一、前言

是在 CentOS 7.9 环境下进行 Docker 安装 Jenkins 的Python环境

目录地址:

/var/jenkins_home 目录为容器 Jenkins 工作目录,挂载到宿主机所创建的 /var/jenkins_workspace 工作目录上。

在 Jenkins 工作目录,例如 test 项目,显示的路径地址为

/var/jenkins_home/workspace/test
在这里插入图片描述
而实际,对应于宿主机的地址为

/var/jenkins_workspace/workspace/test
在这里插入图片描述
上面只是阐述了一下目录的路径,下面开始说一下问题。

宿主机有 Python 环境,Docker 镜像里没有 Python 环境。

宿主机下执行 Python 脚本。
在这里插入图片描述
执行成功
在这里插入图片描述
Jenkins 的项目里,构建添加执行 shell,输入命令。

在这里插入图片描述
之后立即构建此项目(test),执行完成后,查看控制台输出日志,可以看到报错,未找到 python。
在这里插入图片描述
如何解决:

需要在 Docker 容器中安装 Python 环境。

二、Docker安装Python环境

1、查询正在运行的容器ID

docker ps

Jenkins 容器ID为 b896766053f2
在这里插入图片描述

2、进入 Jenkins 容器中

docker exec -itu root 容器id /bin/sh
例如 docker exec -itu root b896766053f2 /bin/sh

在这里插入图片描述

3、查看容器当前操作系统

cat /etc/issue

这里查到的是 Debian 系统(不是 Ubuntu,也不是 CentOS),这里 yum 是没有的,所以不能用 yum 安装,这里用 apt-get 代替 yum。

在这里插入图片描述

4、先执行更新软件列表

apt-get update

如图所示:提示更新失败。
在这里插入图片描述
即重启 Docker,之后再启动 Jenkins 镜像即可。

sudo systemctl restart docker
docker restart b896766053f2

5、容器内部安装 Python

(1)先安装依赖

apt-get -y install gcc automake autoconf libtool make
apt-get -y install make*
apt-get -y install zlib*
apt-get -y install openssl libssl-dev
apt-get install sudo

(2)下载

官网下载地址,例如版本3.8.12

https://www.python.org/ftp/python/

切换到 /usr/local 目录,将下载的安装包存放在此目录里。

cd /usr/local
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz

注意:若提示 wget: not found,执行 sudo apt-get install wget 即可。

(3)解压

tar -xvf Python-3.8.12.tgz

创建 python3 文件夹

mkdir python3

切换到解压后的 Python-3.8.12 目录下

cd Python-3.8.12

之后在启动 Jenkins 镜像

(4)执行如下代码安装

–prefix 选项是配置安装的路径,执行后所有资源文件放在 /usr/local/python3 的路径里。

./configure --prefix=/usr/local/python3 --enable-optimizations
make
make install

(5)创建软链接

ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

(6)查看 Python 3 是否安装成功。

python3 -V
pip3 -V

6、之后再次在 Jenkins 里执行 Python 脚本( Docker 镜像里已有 Python 环境)在这里插入图片描述

之后立即构建此项目(test),执行完成后,查看控制台输出日志,可以看到构建成功。
在这里插入图片描述

三、Jenkins时间与本地时间不一致

利用 Docker 安装 Jenkins,在后续使用 Jenkins 时,可能会发现 Jenkins 时间与本地时间不一致这个问题。

在这里插入图片描述
解决方法为:启动 Jenkins 容器时,设置容器时间为上海时间。

-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai

此时 Jenkins 时间与本地时间一致。
在这里插入图片描述
查询 Jenkins 系统信息-系统属性时,时区已改为上海时区。
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shanmao04/article/details/136846818
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/shanmao04/article/details/136846818

### 查找并使用包含 PythonDocker 镜像 对于查找和使用包含 PythonDocker 镜像,可以采用多种方法。一种常见的做法是从 Docker Hub 获取官方维护的 Python 镜像。 #### 使用官方 Python 镜像 官方提供的 Python 镜像是经过严格测试和优化的选择之一。可以通过简单的 `pull` 命令获取最新版本: ```bash sudo docker pull python:latest ``` 如果需要特定版本,则可以在标签处指定版本号,例如拉取 Python 3.9 版本: ```bash sudo docker pull python:3.9-slim-buster ``` 上述命令会下载由官方团队构建好的 Python 运行环境到本地机器上[^1]。 #### 构建自定义 Python 镜像 当有特殊需求时,可能希望创建自己的 Python 容器镜像,在这种情况下,通常会在项目根目录下编写一个名为 `Dockerfile` 文件来描述如何组装这个镜像。下面是一个简单例子说明怎样基于官方 Python 镜像扩展出带有额外依赖项的新镜像: ```dockerfile FROM python:3.8-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["python", "your_script.py"] ``` 之后通过执行如下指令完成新镜像的制作过程: ```bash sudo docker build -t your_custom_image_name . ``` 这 `-t` 参数用于给新建的镜像命名以便后续调用[^4]。 #### 启动带 Python 环境容器实例 一旦有了合适的镜像文件(无论是来自远程仓库还是自行编译),就可以启动一个新的交互式 Bash Shell 来探索该环境中预安装的内容了: ```bash sudo docker run -it --rm python:latest bash ``` 此操作将会临时运行一个具有 Python 解释器和其他工具集的一次性容器,并允许用户在其内部执行任意命令直到退出为止[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值