gpt4 book ai didi

node.js - 如何在docker中将主机代码挂载到容器中?

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:57 33 4
gpt4 key购买 nike

我有一个非常简单的代码库,如下所示

Dockerfile
docker-compose.yml
package.json
server.js

我的 Docker 文件

FROM node:alpine

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package.json /usr/src/app
RUN npm install

COPY . /usr/src/app

EXPOSE 3000
CMD ["npm", "start"]

我的 docker 撰写文件

version: "3"
services:
web:
build: .
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
ports:
- "3000:3000"
depends_on:
- postgres
postgres:
image: postgres:9.6-alpine
ports:
- 5432:5432

我可以成功构建并执行docker-compose up,但我无法将源代码安装到容器中(这意味着当我编辑server.js并刷新浏览器,它不会改变)。

我不确定缺少哪些部件。有人可以帮我吗?非常感谢!

更新: 当我检查容器时,这是安装信息。

"Mounts": [
{
"Type": "bind",
"Source": "/Users/JJ/myApp",
"Destination": "/usr/src/app",
"Mode": "rw",
"RW": true,
"Propagation": ""
},
{
"Type": "volume",
"Name": "12e5a018e711511bfe14a8ea97465d7966696dc62a57727eeafd0de2b4a1e915",
"Source": "/var/lib/docker/volumes/12e5a018e711511bfe14a8ea97465d7966696dc62a57727eeafd0de2b4a1e915/_data",
"Destination": "/usr/src/app/node_modules",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]

最佳答案

当您更改代码时,它不会自动重新加载。您必须重新启动该过程才能发生这种情况。

我建议在您的开发环境中使用 Nodemon 来自动实现这一点。 https://nodemon.io/

请确保您没有将 Nodemon 部署到生产环境中。这不是为了这个。它是一个开发工具。

关于node.js - 如何在docker中将主机代码挂载到容器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42943190/

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