我正在尝试在具有Ubuntu 15.10的VPS计算机上运行两个docker容器,并为此使用docker-compose
。一个容器是mongodb服务器,另一个容器运行我用node.js / sails.js编写的web应用程序。
我在docker-compose.yml
中写了以下内容,以便docker-compose up
将运行两个容器。我将Web应用程序挂载到Web应用程序泊坞窗容器中的目录/host
,并希望执行端口映射3050:1337
(主机:docker)。为了运行Web应用程序,我使用了command
标签并使用bash来更改目录并执行sails lift
命令,但是,它不起作用。我想以下脚本是错误的:
MongoDB:
image: mongo
MyAPI:
image: sailsjs-microservice:dev
volumes:
- /root/Code/node/My-API:/host
command: bash -c "cd /host && sails lift"
ports:
- "3050:1337"
感谢您的帮助
答案 0 :(得分:1)
我没有在sailsjs-microservice容器中看到日志,但我认为你应该在API容器中添加一个指向mongo容器的链接。
一种方法是将它添加到你的撰写文件中:
MyApi:
links:
- mongo:mongo
第一个 mongo 是要链接的图像的名称,第二个是别名,例如可以是db。 Docker会将容器的IP地址导出为环境变量,并为其添加/etc/hosts
条目,以便您可以通过连接到mongo:27017(其中 mongo 是在compose文件中定义的别名,27017是默认端口。
答案 1 :(得分:1)
MongoDB:
image: mongo
networks:
- myApi-tier
MyAPI:
image: sailsjs-microservice:dev
volumes:
- /root/Code/node/My-API:/host
command: bash -c "cd /host && sails lift"
networks:
- myApi-tier
networks:
myApi-tier:
您可以尝试使用网络,现在在您的服务中解析mongodb您可以使用标准端口和uri MongoDB。