将上一篇文章最后新建好的py文件复制到jenkins工作台中:
jenkins容器中执行命令:
cp /var/jenkins_home/auto_test/test_demo.py /var/jenkins_home/workspace/test_demo/
jenkins安装插件ruby-runtime时,用java11无法安装,降java版本问题解决。
1. 安装低版本的jdk,参考LINUX下 JAVA环境安装配置
2. 配置低版本的java环境变量
vim /etc/profile
export JAVA_HOME=/autotest/jdk1.8.0_301
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
source /etc/profile
容器中的环境变量修改,似乎无法改变jenkins的环境变量。
3. exit #退出容器同时也关闭容器
docker systemctl stop docker 关闭docker
后来又尝试修改docker外部的java版本。
1. 前提,本地已经下载好java低版本的jdk并安装配置好环境变量,具体步骤参考:
LINUX下 JAVA环境安装配置
2. 配置好后宿主机的java环境后,需要关闭docker,修改docker容器中配置的java路径:/var/lib/docker/containers/容器id/config.v2.json
3. 打开找到关于JAVA_HOME,PATH的路径。(可以先备份备用,万一失败了可以修复)
4. 将对应的低版本的java的jdk路径作为JAVA_HOME,并将PATH中关于jdk的路径换成低版本的,保存退出。
5. 重启docker: systemctl restart docker
6. 重启jenkins容器:docker restart autotest-jenkins
7. 进入docker容器:docker exec -it autotest-jenkins /bin/bash
8. 再次进入jenkins中的插件管理:ruby-runtime插件就可以使用了。
上面修改了config.v2.json文件后去启动docker容器时遇到了错误,导致每次启动看不出任何问题,但是每次查到的状态都是Exited。后来查了一下怎么去看docker的log,问题才有解决方向。
具体解决办法:
1. 使用命令查log:
docker logs autotest-jenkins
最下面是最新的log,其中报了很多错误:/usr/local/bin/jenkins.sh: line 37: exec: java: not found
查了很多地方,根据这个错误提示应该是jenkins.sh这个文件中的java配置不正确导致的
2. 拿到容器中的/usr/local/bin/jenkins.sh文件拷贝到宿主机:
docker cp autotest-jenkins:/usr/local/bin/jenkins.sh /autotest
3. 将jenkins.sh文件加入如下配置,并保存退出
#!/bin/bash
JAVA_HOME=/usr/java/jdk1.8.0_152
export PATH=$PATH:$JAVA_HOME/bin
4. 将此文件再copy回容器中:
docker cp /autotest/jenkins.sh autotest-jenkins:/usr/local/bin/jenkins.sh
5. 如果还有问题,把容器中的环境变量也修改一下,方法类似于上面步骤:
docker cp autotest-jenkins:/etc/profile /autotest
修改后,将修改的文件拷贝回容器中:
docker cp /autotest/profile autotest-jenkins:/etc/profile
6. 再次重启jenkins容器,大功告成:
docker restart autotest-jenkins
进入容器:docker exec -it autotest-jenkins /bin/bash
又可以继续使用了。
先将python卸载
apt-get --purge remove python
apt-get autoremove python
# cd /var/jenkins_home/
# mkdir python3
# cd python3/
# wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
# tar -xvf Python-3.6.8.tgz
# ls
Python-3.6.8 Python-3.6.8.tgz
# cd Python-3.6.8
# ./configure --prefix=/var/jenkins_home/python3
执行 ./configure --prefix=/var/jenkins_home/python3时报上面错:configure: error: no acceptable C compiler found in $PATH
apt-get 安装依赖包
这个是因为缺少gcc相关依赖包,使用apt-get代替yum安装相关依赖包
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
执行步骤:apt-get -y install make*报错
The following packages have unmet dependencies:
libqt4-dbus : Depends: qdbus (= 4:4.8.7+dfsg-11+deb9u1) but it is not going to be installed
make : Conflicts: make-guile but 4.3-4.1 is to be installed
make-guile : Conflicts: make
执行步骤:# apt-get -y install zlib*报错
The following packages have unmet dependencies:
zlib1g-dbg : Depends: zlib1g (= 1:1.2.8.dfsg-5) but 1:1.2.11.dfsg-2 is to be installed
E: Unable to correct problems, you have held broken packages.
The following packages have unmet dependencies(未能满足依赖关系)解决办法:
aptitude与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。
# apt-get install aptitude
# aptitude install libqt4-dbus
# aptitude install zlib1g-dbg
# aptitude install make
重新执行上面的命令还是报错,此处坑比较多
继续:
apt-get -y install openssl libssl-dev
apt-get install sudo
make编译安装
在/var/jenkins_home/python3/Python-3.9.2目录执行make和make install 安装
./configure --prefix=/var/jenkins_home/python3 --with-ssl
make
make install
又报错了:
Traceback (most recent call last):
File "
ModuleNotFoundError: No module named 'zlib'
花了好久没解决,果断放弃了。