簡體   English   中英

暴露在gitlab ci docker映像中運行的服務器

[英]Expose server running in gitlab ci docker image

我有一個使用gradle / gretty和gitlab-ci(在我自己的服務器上運行gitlab)和docker鏡像構建和測試的Web應用程序。 這對於單元測試來說很好用。

但是現在我希望用戶在瀏覽器中測試Web應用程序。 我的想法:使用docker映像創建另一個gitlab-ci作業(手動啟動),該作業利用grettys appStart啟動tomcat實例並保留其runnig,以便用戶可以從其瀏覽器訪問它。

問題:如何將docker映像內部的服務器暴露給外界? 我發現了提示,如果您獨立運行docker映像,該怎么做,但在gitlab-ci中使用docker時,卻沒有如何做。

還是有更好的方法來做我嘗試的事情?

我的簡單gitlab-ci.yml:

runServer:
  image: java:8-jdk
  script:
    - ./gradlew appStart
  when: manual

如何將docker映像內部的服務器暴露給外界?

這可以通過兩種方式完成。 它們使外部主機可以訪問主機上容器中服務器的端口:

  1. 通過將-p傳遞給docker run ,將服務器的端口發布到主機。 更多信息在這里

     docker run -p hostPort:containerPort ... 
  2. 通過將使用多克的“ 主機網絡--network hostdocker run 更多信息在這里

     docker run --network host ... 

為什么可以這樣做,這些工作並不能長期運行。 Luckil Gitlab有一個名為Review Apps的功能,您應該研究一下該功能以及名為Clusters的新功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM