集成docker jenkins github 发布运行

预备知识

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


实现步骤

  1. 首先可运行的程序。 这里使用java
  2. 编写dockerfile文件
  3. 将代码使用git 上传到远程仓库,比如:github gitlib 或者自己搭建的git服务器
  4. 在服务器安装jenkins 配置 、构建、运行
  5. 使用docker 命令创建demo 镜像:docker build ./
  6. 访问浏览器

可以启动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 jenkins github 发布运行_第1张图片

完成


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 项目
集成docker jenkins github 发布运行_第2张图片
选择
点击 OK

找打Source Code Management 配置 git 地址 如果git是私库需要配置认证
选择分支,默认master。这里配置的git仓库,jenkins 在运行时会自动从仓库中拉取源码

集成docker jenkins github 发布运行_第3张图片

选择 执行shell
集成docker jenkins github 发布运行_第4张图片

执行脚本
然后编写 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 即可看到构建日志 如果有什么错误的可以看日志

集成docker jenkins github 发布运行_第5张图片


完成

你可能感兴趣的:(总结)