易商讯
当前位置: 首页 » 网络 » 物联网 » 正文

云计算核心技术Docker教程:使用 Compose 在本地开发

放大字体  缩小字体 发布日期:2021-11-02 18:59:50
导读

在本节中,我们将创建一个 Compose 文件,以使用一个命令启动我们的 node-docker 和 MongoDB。我们还将设置 Compose 文件以在调试模式下启动 node-docker,以便我们可以将调试器连接到正在运行的节点进程。在 IDE 或文本编辑器中打开 notes-service 并创建一个名为docker-compose.dev.yml. 将以下命令复制并粘贴到文件中。v

在本节中,我们将创建一个 Compose 文件,以使用一个命令启动我们的 node-docker 和 MongoDB。我们还将设置 Compose 文件以在调试模式下启动 node-docker,以便我们可以将调试器连接到正在运行的节点进程。

在 IDE 或文本编辑器中打开 notes-service 并创建一个名为docker-compose.dev.yml. 将以下命令复制并粘贴到文件中。

version: '3.8'

services:

  notes:

     build:

        context: .

     ports:

        - 8000:8000

        - 9229:9229

     environment:

       - SERVER_PORT=8000

       - ConNECTIONSTRING=mongodb://mongo:27017/notes

      volumes:

        - ./:/app

      command: npm run debug

mongo:

   image: mongo:4.2.8

   ports:

       - 27017:27017

    volumes:

      - mongodb:/data/db

      - mongodb_config:/data/configdb

     volumes:

        mongodb:

        mongodb_config:

这个 Compose 文件非常方便,因为我们不必键入要传递给docker run命令的所有参数。我们可以在 Compose 文件中声明性地做到这一点。

我们正在公开,port 9229以便我们可以附加调试器。我们还将本地源代码映射到正在运行的容器中,以便我们可以在文本编辑器中进行更改,并在容器中获取这些更改。

使用 Compose 文件的另一个非常酷的功能是我们将服务解析设置为使用服务名称。所以我们现在可以“mongo”在我们的连接字符串中使用。我们使用 mongo 的原因是因为我们在 Compose 文件中将我们的 MongoDB 服务命名为。

要在调试模式下启动我们的应用程序,我们需要在我们的package.json文件中添加一行来告诉 npm 如何在调试模式下启动我们的应用程序。

打开package.json文件并将以下行添加到脚本部分:

"debug": "nodemon --inspect=0.0.0.0:9229 server.js"

如您所见,我们将使用 nodemon。Nodemon 以调试模式启动我们的服务器,并监视已更改的文件,并重新启动我们的服务器。让我们在终端中运行以下命令将 nodemon 安装到我们的项目目录中。

$ npm install nodemon

让我们启动我们的应用程序并确认它运行正常。

$ docker-compose -f docker-compose.dev.yml up --build

我们传递--build标志,以便 Docker 编译我们的图像,然后启动它。

如果一切顺利,您应该会看到类似的内容:

现在让我们测试我们的 API 端点。运行以下 curl 命令:

curl --request GET --url http://localhost:8000/notes

您应该会收到以下回复:

{"code":"success","meta":{"total":0,"count":0},"payload":[]}

 
(文/TechWeb编译)
免责声明
• 
本文云计算核心技术Docker教程:使用 Compose 在本地开发链接:http://www.esxun.cn/internet/28330.html 。本文仅代表作者个人观点,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们,我们将在24小时内处理完毕。如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
 

Copyright © www.esxun.cn 易商讯ALL Right Reserved


冀ICP备2023038169号-3