问题描述
我正在使用 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 底部有一个微调器)上,因为这会启动我的服务器和脚本没有“退出”,所以我觉得应该有更好的方法在容器设置后触发服务器运行?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)