一、前言
Jenkins作为CI、CD的先驱者,虽然现在的风头没有Gitlab强了,但是还是老当益壮,很多中小公司还是使用比较广泛的。最近小编经历了一次Jenkins发包,感觉还不错,所以自己学习了一下。网上比较多的教程都是在Linux上搭建Jenkins,小编经过一个星期的探索终于完成了在docker中进行搭建。
「最终版就是:通过git上传代码—>使用Jenkins构建自动打包—>把jar包打成docker镜像,运行在docker中,Windows下进行访问」
主要记录一下一些踩过的坑和注意点,让后来人能够跟着小编一次完成!!
二、安装Docker
三、linux安装jdk和maven
1、下载JDK8Linux版本
官网下载太慢了,小编这里为大家下载好了:
百度网盘地址:https://pan.baidu.com/s/1nlfc2gwL0Ho_wWbVuJiG4g
提取码:ov24
2、下载Maven
maven3.8.5下载链接:https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
3、使用xftp上传到linux上
4、解压
「解压maven」
tar -zxvf apache-maven-3.8.5-bin.tar.gz
「重命名maven」
mv apache-maven-3.8.5-bin.tar.gz apache-maven-3.8.5
「解压jdk」
tar -zxvf jdk-8u333-linux-x64.tar.gz
「重命名jdk」
mv jdk-8u333-linux-x64.tar.gz jdk1.8
5、配置环境变量
「进入环境变量文件」
vim /etc/profile
「添加jdk和manven配置」输入i
,进入输入模式
注意自己的安装目录,放在文件最上面就行
JAVA_HOME=/usr/local/java/jdk1.8
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
export MAVEN_HOME=/usr/local/java/apache-maven-3.8.5
export PATH=${MAVEN_HOME}/bin:${PATH}
按下esc
,输入:wq
保存退出。
「查看是否安装成功」
java -version
mvn -v
6、配置Maven加速镜像
cd apache-maven-3.8.5/conf/
vim settings.xml
输入i
,进入输入模式
<mirrors>
<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<mirrorOf>centralmirrorOf>
mirror>
mirrors>
按下esc
,输入:wq
保存退出。
四、Docker安装Jenkins
1.准备挂载目录
cd home/
mkdir jenkins_home
一定要赋予修改权限,不然挂载会失败,我们这里给最高权限。
chmod -R 777 jenkins_home
2. 执行docker命令
docker run -di --name=myjenkins -p 8080:8080 -v /home/jenkins_home:/var/jenkins_home
-v /usr/local/java/jdk:/usr/local/jdk1.8
-v /usr/local/java/apache-maven-3.8.5:/usr/local/apache-maven-3.8.5
-v $(which docker):/usr/bin/docker
-v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts
-v /home/jenkins_home:/var/jenkins_home
:是对容器内存储Jenkins的一些配置信息的文件夹-v /usr/local/java/jdk:/usr/local/jdk1.8
:是把linux下的jdk和容器内的关联(配置Jenkins时使用)-v /usr/local/java/apache-maven-3.8.5:/usr/local/apache-maven-3.8.5
:是把linux下的maven和容器内的关联(配置Jenkins时使用)
-v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock
:是可以在Jenkins容器里使用我们Linux下的docker。
五、配置Jenkins
1. 进入Jenkins
输入:http://192.168.84.133:8080/
(ip+端口号)
2. 获取密码
docker logs 容器id
3. 安装插件
4. 创建用户
5. 保存配置地址
6. 配置插件镜像
输入:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
点击提交
7. 安装ssh插件
安装完成重启一下Jenkins
8. 添加ssh登录账号凭据
点击系统管理
,找到下图点击
9. 配置全局ssh
点击系统管理
,找到系统配置
点击新增:
点击保存:
10. 配置jdk和maven
点击系统管理
,找到全局工具配置
:
点击保存
六、准备Springboot项目到git
1. 核心代码
我们看到只是一个请求打印,我们最后访问有docker成功
,代表我们构建发包成功!
2. pom内容
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<executions>
<execution>
<goals>
<goal>repackagegoal>
goals>
execution>
executions>
<configuration>
<includeSystemScope>trueincludeSystemScope>
configuration>
plugin>
plugins>
build>
3. yml文件
这里只指定了端口号
server.port=8081
4. Dockerfile
和pom文件同级
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
5. 上传git仓库
七、使用Jenkins部署项目
1. 新建任务
2. 添加git凭据
==选择刚刚添加的凭据报错信息消失==
3. 添加maven构建
4. 增加构建执行shell
shell脚本:
#!/bin/bash
# 服务名称
SERVER_NAME=jenkins
# 源jar名称,mvn打包之后,target目录下的jar包名称
JAR_NAME=demo-0.0.1-SNAPSHOT
# jenkins下的目录
JENKINS_HOME=/var/jenkins_home/workspace/jenkins
# 等待三秒
echo sleep 3s
sleep 1
echo sleep 2s
sleep 1
echo sleep 1s
sleep 1
echo "结束进程完成"
cd $JENKINS_HOME/target
cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target
# 修改文件权限
chmod 755 $JAR_NAME.jar
echo "看看docker能不能用"
docker -v
echo "停止容器"
# 停止容器
docker stop springboot
echo "删除容器"
# 删除容器
docker rm springboot
echo "删除镜像"
# 删除镜像
docker rmi springboot
echo "打包镜像"
# 打包镜像
docker build -t springboot .
echo "运行镜像"
# 运行镜像
docker run -d -p 8081:8081 --name springboot springboot
5. 立即构建
6. 控制台输出报错
我们看到打包成功了,就是在使用docker命令的时候出现权限问题,这是我们要给docker.sock权限就可以解决了!!
报错信息:
Got permission denied while trying to connect to the Docker daemon socket at
unix:///var/run/docker.sock: Post
"http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/springboot/stop": dial unix
/var/run/docker.sock: connect: permission denied
解决方案:
chmod a+rw /var/run/docker.sock
7.在次构建
我们发现没有报错,也看到了容器的id
8. 查询docker镜像是否启动
docker images
docker ps
9. Win10进行访问测试
输入地址:http://192.168.84.133:8081/test/docker
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=14662,转载请注明出处。
评论0