上一篇:Docker+jenkins+gitee+springboot实现自动化部署流程(详细教程)(附下载工具地址)(1)
2、代码准备+gitee准备
2-1 idea创建简单的springboot项目
① idea--File--New--Project,项目命名为apple
② pom加上依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
③ application.yml
server: port: 8306
④ Democontroller.class
@RestController @RequestMapping("/apple") public class DemoController { @RequestMapping("/queryById") public String queryById(@RequestParam(name = "id", required = true) String id) { if("1".equals(id)){ return "暗示健康大精神可点击啊-------1-"; } return "没有数据"; } }
⑤启动访问,http://127.0.0.1:8306/apple/queryById?id=1
2-2 构建build+Dockerfile
① 在pom加上build内容(注:有两处ip是写你服务器公网ip)
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- 打包跳过测试 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <!--docker镜像相关配置--> <configuration> <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory> <!-- 指定 Dockerfile 路径--> <imageTags> <imageTag>${project.version}</imageTag> </imageTags> <!--推送仓库 --> <registryUrl>ip:5000</registryUrl> <pushImage>true</pushImage> <!--镜像名,这里用工程名--> <imageName>ip:5000/${project.artifactId}</imageName> <!-- 这里是复制 jar 包到 docker 容器指定目录配置,也可以写到 Docokerfile 中 --> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.artifactId}-${project.version}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
② 创建Docekerfile文件,并写入相关内容
FROM java:8 VOLUME /tmp ADD apple-0.0.1-SNAPSHOT.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
2-3 gitee相关(本机需自行下载git)
① gitee创建apple仓库
② git相关命令
git初始化
git init
加入暂存区
git add .
提交代码
git commit -m 'first commit'
推送
git push https://gitee.com/apple.git master
③ gitee开启交互通讯webhooks
进入对应的仓库点管理
添加webhooks管理
3、jenkins配置
3-1 用户管理,以防忘记账号密码
① 进入
② 配置允许用户注册
3-2 插件管理,下载gitee插件
① 进入
② 搜索下载
3-3 配置jdk+maven的地址
① 进入
② 选择你的maven-setting文件
③ 配置jdk+maven 保存
3-4 开始发布自动化项目操作
① 进入,并输入构建的项目名称,我的已存在所以提示红色字存在
② 选择你gitee的项目仓库
需要配置你gitee的账号密码
③ 构建触发器,对应上gitee项目相关的webhooks
④ 构建--执行shell(ip换成你服务器公网ip)
#!/bin/bash result=$(docker ps | grep "apple") if [[ "$result" != "" ]] then echo "stop apple" docker stop apple fi result=$(docker ps -a | grep "apple") if [[ "$result" != "" ]] then echo "rm apple" docker rm apple fi result2=$(docker images | grep "ip:5000/apple:0.0.1-SNAPSHOT") if [[ "$result2" != "" ]] then echo "ip:5000/apple:0.0.1-SNAPSHOT" docker rmi $(docker images | grep "ip:5000/apple:0.0.1-SNAPSHOT" | awk '{print $3}') fi
⑤ 构建--调用顶层Maven目标(ip换成你服务器公网ip)
选择你先前设置maven
clean package -f pom.xml -DskipTests docker:build
docker run --name apple -p 8306:8306 -idt ip:5000/apple:0.0.1-SNAPSHOT
⑥ 完成
3-5 测试,修改内容推送至gitee,完成自动构建
提交
打开jenkins-apple项目首页就能看到自动构建了
查看控制台,自动下载-打包-删除旧包-启动新包
访问项目