2017-09-04 70 views
1

我有使用量角器編寫的自動化功能。如何確保碼頭工人僅用於我的任務

我想通過jenkins運行它。

我的shell命令:

docker pull selenium/hub:latest 
docker pull selenium/node-chrome:latest 
docker rm -f selenium-hub && echo "container selenium-hub removed" || echo "container selenium-hub does not exist" 
docker run -d -p 4444:4444 --name selenium-hub selenium/hub:latest 
docker run -d --link selenium-hub:hub selenium/node-chrome:latest 
protractor conf.js 

一切完美的作品。

我的問題是:我可以絕對確定只有我的代碼在docker上運行,並且所有其他組件(如我在同一臺服務器上運行的角度網站)不會使用docker,即使用docker時應該採取哪些預防措施如果我的服務器有100個不同的應用程序正在運行,並且我希望這些應用程序不應該有任何副作用。如果某些應用程序在nodejs v3上運行,並且我的docker具有nodejs v5,那麼使用nodejs v3的應用程序將繼續僅在nodejs v3上運行。

回答

0

我假設你擔心一些其他應用程序使用硒?這在技術上是可行的,因爲當你啓動硒轂式鏡像時,參數-p 4444:4444將把端口4444綁定到你的本地主機。

要確保所有內容都是自包含的,您需要使用參數-p 4444並在碼頭容器中運行量角器測試。

一個Dockerfile這樣會爲你的測試(未經測試)

FROM node:alpine 

COPY your/source/directory /opt/ 

WORKDIR /opt/ 

RUN npm install -g protractor 

CMD protractor conf.js 

做:您量角器的配置將引用硒集裝箱樞紐名(即硒集線器)本地主機

+0

所以,如果其他應用程序沒有鏈接到端口4444,那麼他們永遠不會使用硒。對? –

+0

碼頭集裝箱將在他們自己的網絡中。您可以訪問它們的唯一方法是將該網絡綁定到本地網絡。這就是'-p 4444:4444'所做的。您的量角器conf可能引用localhost:4444在它的配置中與硒聯繫。如果你很高興你的其他應用程序都不會訪問localhost:4444,那麼你不必擔心:) –