定義防止出版的端口我有一個定義將運行我的應用程序和服務,該應用程序依賴於運行的服務的碼頭工人撰寫文件:在撰寫文件
services:
frontend:
build:
context: .
volumes:
- "../.:/opt/app"
ports:
- "8080:8080"
links:
- redis
image: node
command: ['yarn', 'start']
redis:
image: redis
expose:
- "6379"
對於發展這個撰寫文件自曝8080
,以便我可以從瀏覽器訪問正在運行的代碼。
在jenkins但是我不能公開那個端口,那麼兩個同時運行的作業會衝突試圖綁定到jenkins上的同一個端口。
有沒有一種方法可以防止docker-compose綁定服務端口?像--service-ports
旗的倒數?
對於背景:
在詹金斯我運行使用docker-compose run frontend yarn test
,不會端口映射,所以是沒有問題的測試。
當我嘗試運行對應用程序的端到端瀏覽器測試時,會出現此問題。我使用容器對正在運行的應用程序實例運行CodeceptJS測試。在這種情況下,我需要在運行測試之前啓動前端,因爲如果應用程序未啓動,它們將失敗。
如果'CodeceptJS'是一個容器,基本上你可以將它作爲一個服務添加到組合文件中,然後'前端'服務包含'CodeceptJS'作爲候選鏈接的一個,然後使用'expose'而不是'端口「將8080暴露給鏈接的服務。這會工作嗎? –