gpt4 book ai didi

node.js - 在docker-compose中运行命令

转载 作者:行者123 更新时间:2023-12-02 21:26:08 26 4
gpt4 key购买 nike

我试图在具有Ubuntu 15.10的VPS机器上运行两个docker容器,并为此使用docker-compose。一个容器是mongodb服务器,另一个则运行以node.js / sails.js编写的Web应用程序。

我在docker-compose.yml中编写了以下内容,以便docker-compose up将同时运行两个容器。我正在将Web应用程序安装到Web应用程序Docker容器中的/host目录中,并希望进行端口映射3050:1337(host: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"

我感谢您的帮助

最佳答案

我尚未在sailsjs-microservice容器中看到日志,但我认为您应该在API容器中添加指向mongo容器的链接。

一种实现方法是将其添加到撰写文件中:

MyApi:
links:
- mongo:mongo

第一个mongo是您要链接的图像的名称,第二个是别名,例如可以是db。 Docker会将容器的IP地址作为环境变量导出,并为此添加 /etc/hosts条目,以便您可以通过连接到mongo:27017在服务代码中引用它(其中 mongo 是在compose文件中定义的别名)并且27017是默认端口)。

看看 link environment variables

关于node.js - 在docker-compose中运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37929943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com