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去拉取该镜像就行
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号