如何解决缺少的依赖关系-节点js,docker,jsonwebtoken

时间:2020-08-12 17:17:24

标签: node.js docker

对我来说,这听起来很困惑,对此我深表歉意。不过,我非常感谢您的帮助。

我正在尝试将简单的网站/ 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: 

1 个答案:

答案 0 :(得分:0)

这不是一个真正的解决方案,但是解决方法... 从撰写文件中可以看到,我在启动时运行了一个脚本。我在该脚本中添加了npm install命令并运行了它。然后,我从脚本中删除这些命令,然后重新运行它。现在一切正常。

我是Docker的新手,所以我需要以某种方式找到一种在容器内运行此npm install的方法,这似乎可行。可行,到目前为止已经足够好了。