项目中。您可以在 GitHub 找到本项目并获取本文中所提到的所有代码文件。
创建 Spring Boot 项目
首先,我们建立一个基于 Spring Boot 的 Web 应用。填写完项目信息后,在 Dependencies 中选择 Web ,然后点击 Generate Project 按钮,默认下载一个基于 Maven 的项目模板。
添加项目代码
在LabsDemoApplication.java 文件中,添加一个方法,加上@RequestMapping注解,并添加类注解@RestController。
@SpringBootApplication
@RestController
public class LabsDemoApplication {
public static void main(String[] args) {
SpringApplication.run(LabsDemoApplication.class, args);
}
@RequestMapping("")
public String hello() {
return "Hello! Docker!";
}
}
运行程序,打开浏览器,或者使用 curl 访问如下地址:
http://127.0.0.1:8080
如果成功的话,您将会看到Hello! Docker!的文字。
接下来,我们一起来看看如何将这个应用以docker 的方式通过 DaoCloud 进行构建。
添加 Dockerfile
在此我们推荐安全构建的方式,能够更好的保护您的源码。首先在应用根目录下建立 Dockerfile-package 文件,内容如下:
FROM maven:3.5.0-jdk-8-alpine
LABEL maintainer "misha"
WORKDIR /project
ADD . /project
RUN mvn package -Dmaven.test.skip=true
CMD ["mvn"]
因为 Spring Boot 框架打包的应用是一个包含依赖的 jar 文件,内嵌了 Tomcat 和 Jetty 支持,所以我们只需要使用包含 Java 的 Maven 镜像即可。写好打包文件后,接着我们编写 Dockerfile-publish 文件:
FROM java
LABEL maintainer "misha"
COPY /project/target/labs-demo-0.0.1-SNAPSHOT.jar /usr/src/myapp/labs-demo-0.0.1-SNAPSHOT.jar
WORKDIR /usr/src/myapp/
ENTRYPOINT java -jar labs-demo-0.0.1-SNAPSHOT.jar
DaoCloud Services 使用小技巧:
在 pom.xml 文件中加入Nexus daocloud可以优化流水线的速度哦!
nexus-daocloud
Nexus daocloud
http://nexus.daocloud.io/repository/maven-public/
接下来我们开始正式进入 DaoCloud Services 的世界吧!
DaoCloud Services 使用示例
创建新项目
通过 Github / Gitlab / Bitbucket / Coding绑定代码源或者通过 Git 地址进行代码源设置。或者通过 Git 地址进行代码源设置,点击 开始创建。
设置流水线
回到我们的构建项目页,可以看到如下界面:
选择“流程定义”进行设置,在这里默认可以看到三个阶段:测试阶段、构建阶段和发布阶段,在每个阶段中您可以自定义需要的任务,详情请参考使用流水线持续发布应用。
接下来,我们来具体看一下流水线应该如何定义!测试阶段
流水线支持对每个阶段进行操作,点击“测试阶段”右侧的“...”可以为阶段添加任务、重命名阶段名、在左/右侧添加新阶段、删除阶段:
选择“增加任务”或者“添加并行任务”,可以通过任务模板快捷创建该阶段新的任务。
点击添加任务,选择您需要的任务添加到您的流水线中。
示例使用 Sonar 进行代码审查,在此选择 Maven 测试:
点击“ Maven测试 ”右侧的小齿轮图标,可以编辑和删除任务:
点击编辑任务,界面如下:
我们将 Sonar 相关配置填写进去(在此需要关联 Sonar 服务端,便于将代码质量审核报告推送及显示):
当流水线的该 Maven 任务被自动或手动触发后,会执行静态代码质量审查以及生成测试覆盖率报告,运行成功后可登陆 Sonar 的 Dashboard 查看审核结果:
Sonar 的具体配置参见官方文档:SonarQube构建阶段
在此示例我们采用安全构建:
在配置中选择我们前述写好的Dockerfile 进行构建:
在安全构建阶段,需要从构建准备的结果中提取 jar 文件,因此在“文件提取”一栏中需要知名目标文件路径。
触发条件默认为任意分支或标签的提交,当然,您可以根据自己的需求自定义触发条件:
部署到 DCE
在发布阶段点击添加并行任务,按照您的需求快速选择发布目标:
此时选择手动执行或任何更新代码都会触发“流水线”实现自动测试、构建和部署!
在流程定义页面,设置好的完整流水线逻辑会清晰的展现在您的眼前!
流水线开始工作之后,可以在执行记录页面随时查看流水线执行情况、状态及日志。
到这里,流水线基本配置完成,当然,您可以按照自己的需要创建并行任务,一切由您掌控。
欢迎来到 DaoCloud Services 的世界,这里有您意想不到的精彩!