Docker镜像里安装Python环境
1、前言
是在 CentOS 7.9 环境下进行 Docker 安装 Jenkins 的。
目录地址:
/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 容器:
sudo docker run -d -p 8089:8080 -p 10241:50000 -v /var/jenkins_workspace:/var/jenkins_home -v /etc/localtime:/etc/localtime -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --name my_jenkins jenkins/jenkins
此时 Jenkins 时间与本地时间一致。
查询 Jenkins 系统信息-系统属性时,时区已改为上海时区。
相关文章
- 《Effective Python》笔记 第六章-元类与属性
- Python虚拟环境的安装和配置-virtualenv与windows下多个python版本共存
- 【Python成长之路】python并发学习:多进程与多线程的用法及场景介绍
- /var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间
- 【Docker】docker安装GitLab
- python 项目制作docker镜像
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- centos ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
- Python编程语言学习:python编程语言中重要函数讲解之map函数等简介、使用方法之详细攻略
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command)
- Python:pmml格式文件的简介、安装、使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略
- 已解决2.Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and wi
- 【python代码】:能在手机上敲 Python 代码几款App
- 【docker】解决 Failed with result ‘exit-code‘和Start request repeated too quickly和Failed to start Docker
- 【Python成长之路】python 基础篇 -- 装饰器【华为云分享】
- [转载]基于Redis的Bloomfilter去重(附Python代码)
- Python编程:安装python环境以及virtualenv虚拟环境
- Python使用技巧(五):快速解决安装python-lxml模块库报错问题并简单使用
- 【云原生之Docker实战】使用docker部署kooteam在线团队协作工具
- python基础===pendulum '''Python datetimes made easy.'''
- Docker学习笔记10:docker使用之仓库管理
- Docker学习笔记07:docker使用之容器使用
- 【Docker系列】8.docker-compose安装nacos
- 云原生之使用Docker部署docker-compose-ui工具
- docker 使用 GPU 安装Nvidia Docker