首先只是用碼頭工人一個快字:
凡泊塢窗照是,當你用它來構建基礎架構不變即容器不會改變。爲此,Docker支持Dockerfile,它允許您通過許多不同的步驟構建容器,例如安裝Gatling並設置啓動時在容器中運行的默認命令。
通過使用Dockerfile方法,您可以構建一個用於測試的Gatling容器,並且每當您的管道在Jenkins中運行時,就可以讓您免費運行docker exec gatlingAG apt-get -qq update
類型的語句。只是需要考慮。
現在轉入您通過Jenkins管道歸檔Gatling輸出的問題。有跡象表明,你可以接近這個方式有兩種:
- 使用
docker cp
將結果複製回從容器到詹金斯工作區,您的管道
- 安裝工作區到加特林容器,這樣的結果將寫入直接到工作區,並可以很容易地存檔
1:使用泊塢窗CP
你已經使用docker cp
複製東西進入容器,所以你可以使用它在Gatling運行後再次將事物複製出來。你可以做這樣的事情:
sh '''docker run -i -d --net=host --name gatlingAG ubuntu
docker cp gatling gatlingAG:/
docker exec gatlingAG apt-get -qq update
docker exec gatlingAG apt-get -qq install default-jdk
docker exec gatlingAG /bin/bash -c "./gatling/bin/gatling.sh -m"'''
docker cp gatlingAG:/gatling/[name_of_run] .
這會從容器文件系統的輸出複製到您的工作空間的文件系統,在那裏你可以進行歸檔(一看便知的底部)。
2:掛載詹金斯工作區到容器
泊塢支持安裝從主機文件系統到運行其上的任何容器。通過這樣做,容器中的進程可以將文件寫入到更加可靠的存儲或存儲中,從而延長容器的壽命(只要您銷燬容器,其文件系統就會永久丟失)
再次,您可以使用類似的方法您的管道定義:
sh '''docker run -i -d --net=host -v $(pwd)/gatling:/gatling --name gatlingAG ubuntu
docker exec gatlingAG apt-get -qq update
docker exec gatlingAG apt-get -qq install default-jdk
docker exec gatlingAG /bin/bash -c "./gatling/bin/gatling.sh -m"'''
你會發現運行容器告訴碼頭工人在你的容器/加特林裝入加特林目錄時,我使用了-v
選項。這意味着您不需要複製它。另外,當Gatling運行時,結果將直接寫入您的工作區,這意味着您可以輕鬆地將一個Gatling完成的歸檔。在再次運行管道之前,可能需要確保先前的Gatling運行結果已從工作區中清除。
歸檔結果
最後,一旦你有加特林的輸出在您的工作空間運行,你可以簡單地使用archive詹金斯流水線指令歸檔。這將意味着詹金斯將HTML存儲爲工作的人工產物。然後您可以通過瀏覽器直接訪問HTML,例如
https://jenkins-url/job/gatlin-job/1/artifact/TestResults/[name_of_simulation]/index.html