2017-03-07 232 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