Docker-CD详解并实操~

Docker-CD

安装Jenkins
docker-compose.yml
version: "3.1"
services:
  jenkins:
    image: 10.0.134.175:5000/jenkins:2.235
    restart: always
    container_name: jenkins
    ports:
      - 9999:8080
      - 50000:50000
    volumes:
      - ./data:/var/jenkins_home

写完yml文件启动,第一次启动会失败,查看日志,数据卷data目录权限不足:chmod 777 data。
重启jenkins容器。这次启动速度较慢,知道可以访问到jenkins首页
需要在首页输入日志中提供的一个密钥
选择自动安装插件还是手动指定安装插件,选择后者。

  • 必须要安装的内容有2个:Publish Over SSH,Git Parameter
  • 开始安装。(网不好,会漫长的等待,并且伴随着不断的失败,不断的重试。)
    直到可以访问到指定管理员信息的界面。
  • 指定用户信息。
  • 指定默认URL。
  • 进入到Jenkins的首页。
    还需要再Jenkins中再次安装一个插件(Persistent Parameter)
CD 流程

当程序员将代码推送带GitLab上后,会再GitLab仓库版本中打标签,指定版本号。
GitLab —> Jenkins ----> 目标服务器(测试环境,生产环境)

Jenkins绑定目标服务器。
  • 系统管理:系统配置:拉到最下面能看到Publish over SSH:
    Name:随便起名字
    Hostname:指定目标服务器的名称
    Username:目标服务器的用户名
    Remote Directory:目标服务器的操作目录,这个目录必须提前创建(存在)
    选择高级,勾选第一个口
    Passphrase/Password:输入用户名对应的密码
    测试成功后点击保存
Jenkins链接GitLab。(采用SSH无密码链接的方式)
  • 进入到Jenkins容器内部,先跳转到用户目录~,执行ssh-keygen -t rsa -C “邮箱(随便写)”
  • 在~目录下,会生成一个.ssh隐藏目录,进入.ssh目录。
  • 能查看到私钥和公钥,将公钥复制到GitLab的settings配置中。
    进入Gitlab中,点击头像—》settings—》SSH Keys—》将公钥放入key中—》点击Add key
  • 需要在指定好GitLab无密码链接后,使用git clone 下载一次项目。
  • 第一次使用SSH登录时, Git会询问yes/no。输入yes
在Jenkins中安装JDK和Maven
  • 在宿主机中映射Jenkins的数据卷目录下,解压JDK和Maven的压缩包。
  • 在Jenkins页面中配置:系统管理—全局工具配置—JDK安装—Maven安装
CD 前期测试

Jenkins 可以去GitLab中拉去代码,并且在Jenkins内部将项目打成war包。
Jenkin首页点击新建任务—输入名字,选择"构建一个自由风格的软件项目"—确定
General—在源码管理中勾选Git—在Repository URL中写入Git远程仓库的SSH链接路径—构建触发器—增加构建步骤—选择调用顶层Maven目标—Maven版本:指定之前配置的Maven环境;目标:package(将src和pom.xml打包)

配置Jenkins通过tag标签实现操作

给GitLab中的项目打标签(tag)。
配置Jenkins信息:

  • General:参数化构建:Git参数
  • 名称:tag
  • 参数类型:标签
  • 默认值:master

再次build with parameter时,就可以看到GitLab中项目的标签信息了。
为了指定标签构建的同时,可以选择指定标签下的项目代码,需要重新配置打包方式:
构建:执行shell去构建项目

echo $tag
pwd
git checkout $tag
git pull origin $tag
/var/jenkins_home/apache-maven-3.6.3/bin/mvn clean package -DskipTest

为了可以将war包,部署到目标服务器上,需要指定配置信息:

General—选择构建后操作:Send build artifacts over SSH:
Name:之前指定的名称
Source files:**/*.war,docker-compose.yml,Dockerfile
Remote directory:在绑定的目标服务器目录下再次创建一个目录,将内容存放。
Exec command:
cd /usr/local/jenkins/testcd
cp target/test-cd-1.0-SNAPSHOT.war ./testcd.war
docker-compose down
docker-compose up -d --build
docker image prune -f

在IDEA项目中准备与src统计目录的docker-compose.yml文件,以及Dockerfile文件自定义镜像

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值