【问题标题】:How to solve missing dependency - node js, docker, jsonwebtoken如何解决缺少的依赖项-node js、docker、jsonwebtoken
【发布时间】: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 目录是否有 Compose volumes:?这告诉 Docker 该目录包含不能被覆盖的用户数据,并且它将优先于映像中的更新。删除覆盖图像中代码的volumes: 应该可以使事情始终如一地工作。

标签: node.js docker


【解决方案1】:

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

我是 docker 新手,所以我需要找到一种方法在容器内运行这个 npm install ,这似乎可行。工作,现在已经足够好了。

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 2022-07-08
    • 2020-10-11
    • 2021-06-24
    • 2020-03-27
    • 2016-06-01
    • 1970-01-01
    • 2019-11-06
    • 2019-06-26
    相关资源
    最近更新 更多