微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建VS Code开发容器后如何自动启动节点服务器?

如何解决创建VS Code开发容器后如何自动启动节点服务器?

我正在使用 VS Code 的功能为我的服务创建开发容器。使用以下布局,我定义了一个服务(目前)。我想在容器配置为侦听 http 请求后自动运行我的节点项目,但还没有找到最好的方法

我的项目目录

  • 项目名称
    • .devcontainer.json
    • package.json(等)
  • docker-compose.yaml

现在在我的 docker-compose.yaml 中,我定义了以下结构:

version: '3'

services:
    project-name:
        image: node:14
        command: /bin/sh -c "while sleep 1000; do :; done"
        ports: 
            - 4001:4001
        restart: always
        volumes:
            - ./:/workspace:cached

请注意我如何需要将 /bin/sh -c "while sleep 1000; do :; done" 作为服务 command,这是根据 VS Code 文档所必需的,以便服务不会关闭

在我的.devcontainer.json内:

{
    "name": "My Project","dockerComposeFile": [
        "../docker-compose.yaml"
    ],"service": "project-name","shutdownAction": "none","postCreateCommand": "npm install","postStartCommand": "npm run dev" // this causes the project to hang while configuring?
    "workspaceFolder": "/workspace/project-name"
}

添加一个 postCreateCommand 来安装依赖项,但我还需要运行 npm run dev 来让我的服务器侦听请求。但是,如果我在 postStartCommand添加此命令,该项目确实会构建并运行,但它在技术上挂在 Configuring Dev Server(VS Code 底部一个微调器)上,因为这会启动我的服务器和脚本没有“退出”,所以我觉得应该有更好的方法在容器设置后触发服务器运行?

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。