【发布时间】:2020-08-14 02:15:39
【问题描述】:
这对我来说听起来有些脱节,对此我深表歉意。不过,我真的很感激帮助。
我正在尝试容器化一个简单的网站/api/数据库。 javascript、node js、mongodb。
一切正常,直到我决定添加几个新的依赖项,即 jsonwebtoken 和 bcryptjs
当前状态是: 我已经在项目的根目录中运行了 npm install jsonwebtoken --save 和 npm install bcryptjs --save 。 它们都在 package.json 依赖项中
我正在使用 nodemon 在 Visual Studio 代码中保存后重新启动。保存任何内容都会在控制台中显示重新启动,但错误仍然存在。我还通过命令行“向下”和“向上”了 docker-composer。我已经完全退出并重新启动了docker,仍然是错误。
在向现有项目添加新依赖项的过程中,我是否缺少一些基本的东西?
以下是我的 docker-compose 文件
version: '3'
services:
nodejs:
build:
context: .
dockerfile: Dockerfile
image: nodejs
container_name: nodejs
restart: unless-stopped
env_file: .env
environment:
- MONGO_USERNAME=$MONGO_USERNAME
- MONGO_PASSWORD=$MONGO_PASSWORD
- MONGO_HOSTNAME=db
- MONGO_PORT=$MONGO_PORT
- MONGO_DB=$MONGO_DB
ports:
- "8080:8080"
volumes:
- .:/home/node/app
- node_modules:/home/node/app/node_modules
networks:
- app-network
command: ./wait-for.sh db:27017 -- /home/node/app/node_modules/.bin/nodemon app.js
db:
image: mongo:4.1.8-xenial
container_name: db
restart: unless-stopped
env_file: .env
environment:
- MONGO_INITDB_ROOT_USERNAME=$MONGO_USERNAME
- MONGO_INITDB_ROOT_PASSWORD=$MONGO_PASSWORD
volumes:
- dbdata:/data/db
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
dbdata:
node_modules:
【问题讨论】:
-
您能告诉我们您的镜像是如何构建的或共享 docker-compose 文件和 docker-compose up 命令(任何其他参数等)吗?谢谢
-
您的
node_modules目录是否有 Composevolumes:?这告诉 Docker 该目录包含不能被覆盖的用户数据,并且它将优先于映像中的更新。删除覆盖图像中代码的volumes:应该可以使事情始终如一地工作。