宿主機
初步框架如下,相當於有
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去拉取該鏡像就行