预备知识
docker 容器
jenkins 自动部署 https://jenkins.io/
git 服务器 我这里使用 github 还有其他可以选择的 gitlib gogs
实现一个简单的程序集成docker jenkins git
这里我使用的编程语言是 java 选择框架spring boot
maven 仓库查找依赖
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web/2.1.0.RELEASE
去找一个选择一个版本引入到项目中:可以使用maven 或者 gradle
如果没有使用构建工具之类的 可以找到 Files 这项后面的 jar 直接下载
但是需要下载该jar 的依赖 从下面页面上找到 Compile Dependencies (6) 这项下面的依赖依次下载
在服务器上的目录是 /root/demo
实现步骤
- 首先可运行的程序。 这里使用java
- 编写dockerfile文件
- 将代码使用git 上传到远程仓库,比如:github gitlib 或者自己搭建的git服务器
- 在服务器安装jenkins 配置 、构建、运行
- 使用docker 命令创建demo 镜像:
docker build ./
- 访问浏览器
可以启动web程序
package com.zh.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoServerApplication {
public static void main(String[] args) {
SpringApplication.run(DemoServerApplication.class, args);
}
@GetMapping("/test")
public ResponseEntity<String> test(){
return ResponseEntity.ok("test ok..");
}
}
打包后的文件 demo-server-1.0.0.SNAPSHOT.jar
java -jar demo-server-1.0.0.SNAPSHOT.jar
访问: http://localhost:8080/test
结果
完成
docker 文件默认为 Dockerfile
# 依赖java 的镜像 可以使用java -jar 等命令
from java:8-alpine
# 设置生成这个镜像的作者
maintainer zh
workdir /data
add ./demo-server-1.0.0.SNAPSHOT.jar /data/app.jar
# RUN 执行命令并创建新的镜像层,RUN 经常用于安装软件包。
# CMD 设置容器启动后默认执行的命令及其参数,但 CMD 能够被 docker run 后面跟的命令行参数替换
# ENTRYPOINT 配置容器启动时运行的命令
# set -ex 设置脚本出现异常就中断
run set -ex
# 暴露端口,就是让docker 容器以外可以访问这个端口
expose 8080
# 执行命令
cmd ["java","-jar","/data/app.jar"]
dokcker创建运行
创建docker 镜像 -t 指定镜像名称 docker 的repository -rm 如果存在旧的镜像就删除 之后再构建
docker build --rm -t demo ./
运行docker 容器镜像 --name 指定名称 -p 将端口映射 -p [服务器未使用的端口] : [docker 中暴露出来的端口] 最后的是镜像名称 <镜像名称>:<版本> 不输入版本默认使用 demo:latest
docker run --name=demo -p8080:8080 demo
在服务器安装jenkins 配置 、构建、运行
选择一个版本 http://mirrors.jenkins.io/war-stable/ 下载jenkins。war
这里选择最后一个版本(也就是最新的版本)下载 http://mirrors.jenkins.io/war-stable/latest/jenkins.war
将 jenkins.war 使用ftp 工具上到服务器 或者 本地直接启动
java -jar jenkins.war --httpPort=8080
浏览器 http://localhost:8080
然后输入初始密码 一路配置 就是无脑下一步 当然中间 配下首个jenkins管理员用户
创建一个新项目:newjob | new任务 选择
创建一个任务 这里选择默认的自由风格的项目,如果使用maven 推荐 构建maven 项目
点击 OK
找打Source Code Management 配置 git 地址 如果git是私库需要配置认证
选择分支,默认master。这里配置的git仓库,jenkins 在运行时会自动从仓库中拉取源码
选择 执行shell
执行脚本
然后编写 shell 脚本
# 工作路径,这里已经有上面git 仓库拉去的文件了。 WORKSPACE 是jenkins 自带环境变量
# 下面 See the list of available environment variables 可以看jenkins 自带变量
demo_home=$WORKSPACE
cd $demo_home
chmod +x ./gradlew
./gradlew build
#运行 命令
然后Save 保存 。选择立即构建 build
在Build History 下面可以看到构建的 然后选择最新构建的 点进去 -> 选择 Console Output 即可看到构建日志 如果有什么错误的可以看日志
完成