2017-03-07 175 views
0

內的多個服務在我Dockerfile,我有以下幾點:啓動泊塢窗容器

# Start app and proxy 
CMD service nginx start 
CMD ["nodejs", "/src/index.js"] 

這樣做,這樣,節點服務器在運行,而不是nginx的。同樣,如果我這樣做:

# Start app and proxy 
CMD service nginx start && nodejs /src/index.js 

然後nginx正在運行,但不是節點。

我可以忽略一些明顯的東西嗎?

+2

節點和nginx的既可以是Web服務器,如果你既需要,旋轉起來節點在一個容器中,nginx的在第二個容器中,把他們自己的網絡上,他們可以溝通互相通過DNS,例如'http:// node/api-call' – BMitch

+0

你在不同的端口上運行它們嗎? –

+1

有辦法使它們一起運行,但它看起來像用戶'docker'的「_wrong_」方式...正確的方法是每個容器有一個服務,就像其他人已經說過的那樣 –

回答

0

您可以使用泊塢傳統的鏈接:

  1. 在nginx的文件夾docker build -t docker-nginx .
  2. 在節點文件夾docker build -t docker-node .
  3. docker run -d --name app docker-node
  4. docker run -d --name nginx --link app:app docker-nginx

然後你點應用在NG inx配置文件。像app:3000

你也可以使用docker-compose這會簡化圖像構建和容器運行。結帳documentation

1

我認爲你可以用docker-compose拆分你的問題。

您將獲得一個包含nginx圖像的容器和一個帶有節點應用程序的容器app

然後只需運行一個docker-compose up