『中級篇』docker之CI/CD持續(xù)集成—真實JAVA-Maven項目的CI演示(73)

原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請注明:轉(zhuǎn)載自IT人故事會,謝謝!
原文鏈接地址:『中級篇』docker之CI/CD持續(xù)集成—真實JAVA-Maven項目的CI演示(73)

上次主要說了在githubCI的服務(wù)器,并且也演示了github的runner執(zhí)行CICD,這次通過真實的JAVA-Maven項目來演示下CICD。項目通過gitlab和gitlabCI進(jìn)行CICD。
源碼地址:https://github.com/limingios/gitlabci-maven
源碼:https://github.com/limingios/docker/tree/master/No.11

隨便找一個開源的JAVA-Maven的在github項目。添加到gitlab上。

copy到gitlab上

  • new project


  • Git repository URL

https://github.com/limingios/gitlabci-maven

  • 點(diǎn)擊create project

runner管理新的gitlabci-maven

maven的環(huán)境

 sudo gitlab-ci-multi-runner register

新建github-ci 文件

# These are the default stages. You don't need to explicitly define them. But you could define any stages you need.
stages:
  - build
  - test
  - deploy

# This is the name of the job. You can choose it freely.
maven_build:
  # A job is always executed within a stage. If no stage is set, it defaults to 'test'
  stage: test
  # Since we require Maven for this job, we can restrict the job to runners with a certain tag. Of course, we need to configure a runner with the tag maven with a maven installation
  tags:
    - maven
  # Here you can execute arbitrate terminal commands.
  # If any of the commands returns a non zero exit code the job fails
  script:
    - echo "Building project with maven"
    - mvn verify

開始CI操作

修改.gitlab-ci.yml 就開啟了自動構(gòu)建模式。

  • 報錯了。 跟python當(dāng)初構(gòu)建的時候一樣。
Running with gitlab-ci-multi-runner 9.5.1 (96b34cc)
  on maven (e6c8a28d)
Using Docker executor with image maven:latest ...
Using docker image sha256:c4ef2f017e30bbabddf847a3f458985e55ccc24a2be7dbdf72dc032e7bece3e5 for predefined container...
Pulling docker image maven:latest ...
Using docker image maven:latest ID=sha256:1361ae58b0a463172267a0622430ad5f4f8108c4d4b7b1ae7d552e367cf92413 for build container...
Running on runner-e6c8a28d-project-3-concurrent-0 via gitlab-ci...
Cloning repository...
Cloning into '/builds/root/gitlabci-maven'...
fatal: unable to access 'http://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@gitlab.example.com/root/gitlabci-maven.git/': Couldn't resolve host 'gitlab.example.com'
ERROR: Job failed: exit code 1

Runner啟動的docker容器里無法訪問到gitlab.example.com這個地址(能訪問到才怪)。這一般是由于我們的測試環(huán)境沒有使用域名導(dǎo)致的,gitlab論壇里也不少人討論這個問題,如果你是在部署正式的gitlab環(huán)境,那你自然會有一個域名來使用。不過我這里只是搭建測試環(huán)境,所以我使用了一種投機(jī)的方法:

修改Runner的/etc/gitlab-runner/config.toml文件,在其中的[runner.docker]下增加:

sudo vi /etc/gitlab-runner/config.toml

成功了 重新Retry

6666 美滋滋,當(dāng)初懟了個python現(xiàn)在java遇到這個問題知道咋解決了。

用的不是阿里云,可能比較慢,不過是演示,之后想想辦法直接在腳本里面配置下私有庫的地址。

PS:這次主要給大家簡單的介紹下CI,還沒設(shè)計到CD。下次吧!


往期精彩
  1. docker導(dǎo)學(xué)(一)
  2. 容器的技術(shù)概述(二)
  3. docker的魅力初體驗-5分鐘安裝wordpress不走彎路(三)
  4. docker官網(wǎng)介紹(四)
  5. 如何在mac上安裝docker(五)
  6. 如何在window上安裝docker(六)
  7. 如何在mac上通過vagrant安裝虛擬機(jī)(七)
  8. 如何在window上通過vagrant安裝虛擬機(jī)(八)
  9. docker-Machine的本地使用(九)
  10. docker-Machine的本地使用(十)
  11. 在linux/mac下通過Docker-Machine在阿里云上的使用(11)
  12. docker架構(gòu)和底層技術(shù)(12)
  13. docker Image概述(13)
  14. 手動建立一個base Image(14)
  15. 什么是Container(15)
  16. 構(gòu)建自己的Docker鏡像(16)
  17. Dockerfile詳解(17)
  18. 鏡像的發(fā)布(18)
  19. Dockerfile實戰(zhàn)(19)
  20. 容器的操作(20)
  21. Dockerfile實戰(zhàn)CMD和ENTRTYPOINT的配合(21)
  22. 容器的資源限制(22)
  23. docker網(wǎng)絡(luò)(23)
  24. docker學(xué)習(xí)必會網(wǎng)絡(luò)基礎(chǔ)(24)
  25. Linux網(wǎng)絡(luò)命名空間(25)
  26. Docker Bridge詳解(26)
  27. 容器之間的Link(27)
  28. 容器的端口映射(28)
  29. 容器網(wǎng)絡(luò)之host和none(29)
  30. 多容器復(fù)雜應(yīng)用的部署(30)
  31. overlay網(wǎng)絡(luò)和etcd實現(xiàn)多機(jī)的容器通信(31)
  32. docker的數(shù)據(jù)持久化存儲和數(shù)據(jù)共享(32)
  33. windows下vagrant 通過SecureCRT連接centos7(33)
  34. 數(shù)據(jù)持久化之Data Volume(34)
  35. 數(shù)據(jù)持久化之bind Mounting(35)
  36. docker 使用bind Mounting實戰(zhàn)(36)
  37. docker容器安裝wordpress(37)
  38. docker Compose到底是什么(38)
  39. Docker Compose的安裝和基本使用(39)
  40. Docker 水平擴(kuò)展和負(fù)載均衡(40)
  41. Docker compose 部署一個復(fù)雜的應(yīng)用(41)
  42. 容器編排Docker Swarm介紹(42)
  43. docker-swarm創(chuàng)建一個多節(jié)點(diǎn)集群(43)
  44. play with docker 的使用(44)
  45. docker-swarm中的Service創(chuàng)建維護(hù)和水平擴(kuò)展(45)
  46. 在docker-swarm集群里通過serivce部署wordpress(46)
  47. 集群服務(wù)間通信之RoutingMesh(47)
  48. RoutingMesh之Ingress負(fù)載均衡(48)
  49. Docker-Stack部署wordpress(49)
  50. Docker-Stack部署投票應(yīng)用(50)
  51. Docker-Secret管理和使用(51)
  52. Docker service更新(52)
  53. Docker的收費(fèi)模式(53)
  54. Docker-cloud介紹(54)
  55. Docker Cloud自動構(gòu)建 Docker image(55)
  56. Docker企業(yè)版的在線免費(fèi)體驗(56)
  57. docker企業(yè)版本地安裝之UCP(57)
  58. docker體驗阿里云的容器服務(wù)(58)
  59. 阿里云安裝Docker企業(yè)版UCP和DTR(59)
  60. Kubenetes簡介(60)
  61. Minikube快速搭建K8S單節(jié)點(diǎn)環(huán)境(61)
  62. K8S最小調(diào)度單位Pod(62)
  63. K8S橫向擴(kuò)展功能ReplicaSet和ReplicationController(63)
  64. k8s重要的Deployment(64)
  65. Vagrant在本地搭建多節(jié)點(diǎn)K8S集群(65)
  66. k8s基礎(chǔ)網(wǎng)絡(luò)Cluster Network(66)
  67. k8s的Service簡介和演示(67)
  68. k8s的NodePort類型Service以及Label的簡單實用(68)
  69. CI/CD持續(xù)集成/持續(xù)部署(69)
  70. docker之CI/CD持續(xù)集成-gitlab安裝(70)
  71. docker之CI/CD持續(xù)集成—GitLab CI服務(wù)器(71)
  72. docker之CI/CD持續(xù)集成—真實Python項目的CI演示(72)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容