jenkins远程调用docker

 

宿主机

初步框架如下,相当于有

1)svn服务器 

2)docker jenkins服务 

3)docker测试环境DM   

4)自动化测试服务DM_Test

 

 

 

1.使用docker-compose 创建jenkins容器(比直接启动docker 容器更好用)

/docker/jenkins/data 放置jenkins数据

(如果从无开始建立jenkins,启动docker compose不要进行数据卷挂载,先启动再用docker cp把Jenkins容器中的数据复制到data目录后,再挂载,以实现持久化)

/docker/jenkins/docker-compose.yml,注意docker的socket共享

version: '2'
services:
  jenkins:
    restart: always
    image: jenkins/jenkins:lts
    container_name: jenkins
    expose:
      - "8080"
      - "50000"
    ports:
      - "8080:8080"
      - "50000:50000"
    environment:
      JAVA_OPTS: "-Djava.awt.headless=true -Duser.timezone=Asia/Shanghai"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      # 将宿主机的 Docker 程序挂载到 Jenkins 容器内部
      - /usr/bin/docker:/usr/bin/docker:ro
      - ./data:/var/jenkins_home

启动docker-compose up -d,其他命令详见docker-compose -h内容

最终compose详情

 

2.配置docker远程连接

有2种方式,可参考https://zhuanlan.zhihu.com/p/94224305

1)tcp无密码,不安全

2)tls证书

由于我用虚拟机,直接简单整了个方法1)

修改 /lib/systemd/system/docker.service,注释掉原来那行,加入2行

ExecStart=
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

重启docker之后,验证

docker -H tcp://192.168.101.66:2375 ps 

 

3.构建jenkins任务

基本操作跳过,新手多看看博客教程,主要看  jenkins调用远程docker主机来构建

Jenkins需安装插件 docker-build-step,系统管理>系统配置>配置docker builder

 

任务中配置docker命令,

构建日志如下

 当然,也可以通过创建自定义镜像并push到仓库,再让docker去拉取该镜像就行

 

posted @ 2022-04-05 16:43  huangyn  阅读(1355)  评论(0编辑  收藏  举报