一、Jenkins实现基础CI操作
1.1 通过IDEA创建一个Springboot项目
package com.example.mytest.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @GetMapping("/test") public String test(){ return "Hello Jenkins!"; } }
1.2 git上新建一个项目mytest
1.3 IDEA终端执行
git config --global user.name "Administrator"
git config --global user.email "[email protected]"
1.4 通过IDEA的VCS方式将代码扔到git上
选中项目右键Git-->Commit Directory-->选中所有-->提交
commit成功后,还要把它push到我刚刚创建的仓库里
右键--Git-Push-->origin-->git仓库地址-->ok-->Push
代码就都有了
1.5 Jenkins先创建一个任务
1.6 源码配置
1.7 用户名密码配置
然后应用-保存即可。
1.8 构建
会把代码拉取到jenkins的本地
在jenkins的家目录下,有个workspace目录,所有的工程都会放到此目录。
通过jenkins打包一个target
mytest--配置--构建
选择maven版本--选择需要执行的打包命令--应用--保存
再次构建,因为是第一次通过maven构建,需要下载大量的依赖,所以会慢一些。
构建完成后如下图所示
此时,jenkins的workspace会多出一个target目录,里面会有打包好的jar包
通过jenkins将构建好的jar包发送到目标服务器
项目--配置--构建后操作--send--选择服务器--选择要发送的文件--保存--应用
再次构建。
目标服务器已有传输的jar包
通过dockerfile构建自定义镜像,通过docker-compose构建出镜像并运行起来。
1.9 Dockerfile
FROM daocloud.io/library/java:8u40-jdk COPY mytest.jar /usr/local/ WORKDIR /usr/local CMD java -jar mytest.jar docker-compose.yml version: '3.1' services: mytest: build: context: ./ dockerfile: Dockerfile image: mytest:v1.0.0 container_name: mytest ports: - 8081:8080
1.10代码提交到git
1.11 jenkins配置构建后操作
应用-保存-再次构建
需要先把命令在服务器上面手动执行一次
cd /usr/local/test
cd docker/
mv ../target/jar ./
docker-compose down
docker-compose up -d --build
然后写入绝对路径
cd /usr/local/test/docker
mv ../target/jar ./
docker-compose down
docker-compose up -d --build
再次构建即可。
此时到服务器上面看,发现容器已正常运行
1.12 页面访问
http://192.168.0.103:8081/test
1.13 注意事项
随着代码的提交,每次执行jenkins构建时,会发现,会出现很多none的镜像,可通过以下命令删除
docker image prune -f
可以将此命令放到jenkins的构建后操作步骤中。
cd /usr/local/test/docker
mv ../target/*jar ./
docker-compose down
docker-compose up -d --build
docker image prune -f