为什么要把jenkins挂载到tomcat上,因为后面我打算接入开发的代码,自己维护测试环境做持续集成。如果你们公司已经有运维在做这个事了,直接按照上一篇文章装一个jenkins容器就可以了。
进入主题
一、下载tomcat
1、docker拉取tomcat
docker pull tomcat:8.5.56
2、运行容器,两个命令,哪个能用用哪个。
docker run --name tomcat -p 8088:8080 -v /home/tomcat/webapps/jenkins :/usr/local/tomcat/webapps/jenkins -d tomcat:8.5.56
cd /home
docker run --name tomcat -p 8088:8080 -v $PWD/tomcat/webapps/jenkins:/usr/local/tomcat/webapps/jenkins -d tomcat:8.5.56
解释:
–name tomcat 容器重命名 可以修改成自己喜欢的例如:–name ximi
-p 8088:8080 将容器的8080端口映射到主机的8088端口,8088随后会被使用
-v /home/tomcat/webapps/jenkins:/usr/local/tomcat/webapps/jenkins
容器地址:/home/tomcat/webapps/jenkins
目录挂载到本级:/usr/local/tomcat/webapps/jenkins
-d 挂后台运行
3、验证tomcat部署结果,在浏览器输入http://宿主机IP:8088 就可以访问到tomcat,如果提示404,这个时候需要执行下面的步骤:
3.1、进入tomcat容器
docker exec -it tomcat bash
3.2、复制webapps.dist目录下的文件到webapps中
cp -r webapps.dist/* webapps/
3.3、退出容器后重启tomcat
先输入:exit
再输入:docker restart tomcat
这个时候再访问tomcat就不会提示404了
二、部署Jenkins
1、在宿主机上先进入jenkins目录,执行:
cd /home/tomcat/webapps/jenkins
2、2种方式下载jenkins.war包
2.1、使用命令下载,执行命令:
cd /home/tomcat/webapps/jenkins
wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war
2.2、进入https://mirrors.jenkins-ci.org/war/下载一个版本的包(我这里下载的2.354的包,因为这个包和tomcat8.5.56的版本是对应的),将下载好的jenkins.war上传到宿主机的这个位置:/home/tomcat/webapps/jenkins
3、解压jenkins
jar -xvf jenkins.war
4、重启tomcat
docker restart tomcat
5、启动jenkin,在浏览器输入 http://宿主机IP:8088/jenkins,进入以下页面
6、找密码,两个方法
方法一、执行:docker ps ,查看容器ID,然后执行
docker cp cca2681afad6:/root/.jenkins/secrets/initialAdminPassword
(PS:cca2681afad6 是容器ID)
方法二、执行:find / -name initialAdminPassword
复制查询到的路径,执行:
vi /var/lib/docker/overlay2/47cb47b20889f5f2786a3494e7b26778bb712d119bfd507977e42a4ee3b60bb9/diff/root/.jenkins/secrets/initialAdminPassword
就能看到密码
然后启动容器,执行:systemctl start tomcat
7、替换jenkins的下载源
7.1、先停止tomcat,输入:docker stop tomcat
7.2、再查找default.json这个文件,输入:find / -name default.json
7.3、复制查询到的路径,执行:cd /var/lib/docker/overlay2/47cb47b20889f5f2786a3494e7b26778bb712d119bfd507977e42a4ee3b60bb9/diff/root/.jenkins/updates
7.4、然后输入:vi default.json
将:www.google.com修改成www.baidu.com,然后保存
输入密码后,下面就开始配置jenkins吧
三、docker容器内安装python3
1、进入容器
进docker容器, 加上-u root 以root用户权限进入容器
docker exec -it -u root 容器名称/容器id bash
docker exec -it -u root tomcat bash
2、先执行更新apt-get
apt-get update
3、下载依赖
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
4、下载python3安装包
cd /var/local/
mkdir python3
chmod 777 python3
cd python3/
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
tar -xvf Python-3.6.8.tgz
cd Python-3.6.8
./configure --prefix=/var/python3 --with-ssl
make && make install
5、添加python3和pip3软链接
ln -s /var/local/python3/bin/python3.6 /usr/bin/python3
ln -s /var/local/python3/bin/pip3 /usr/bin/pip3
6、输入pip3 和python3检查环境
四、安装allure
1、官网下载 allure 包
https://github.com/allure-framework/allure2/releases
选个最新版本的去下就行,或者自己挑一个版本
将压缩包传送到挂载的目录,如果已经在容器内需要先退出容器
cd /home/tomcat/webapps/jenkins
进入容器内
docker exec -it -u root tomcat bash
cd /usr/local/tomcat/webapps/jenkins
解压包,执行
unzip allure-2.19.0.zip
赋予文件夹所有内容最高权限
mv allure-2.19.0 allure
chmod -R 777 allure
配置 allure 和 py 环境变量
记得一行一个回车哦,不然就直接复制粘贴
cat >> /root/.bashrc << "EOF"
export PATH=/usr/local/tomcat/webapps/jenkins/allure/bin:$PATH
export PATH=/var/jenkins_home/python3/bin:$PATH
EOF
更新环境变量配置文件
source /root/.bashrc
验证环境变量
allure --version
python3 --version
验证环境变量时,提示:bash: allure: command not found
解决方法,添加allure软链接
ln -s /usr/local/tomcat/webapps/jenkins/allure/bin/allure /usr/bin/allure
五、在容器内安装Git
1、执行安装命令
apt -y install git
查看git的安装位置
which git
六、配置 JDK 环境变量
查看当前的系统已配置的环境变量
export
配置 JDK 环境变量
cat >> /root/.bashrc<< "EOF"
export PATH=$JAVA_HOME/bin:$PATH
EOF