node.js - 在docker-compose中映射卷时获取 “npm ERR! enoent: no such file or directory”

标签 node.js docker docker-compose

我有一个docker-compose文件,其中包含我的应用的自定义图片和官方的mongo图片。只要我不尝试为我的应用程序映射卷,它就可以正常工作,而我正在尝试创建开发docker-compose文件。我觉得我的docker-compose.dev.yml文件中的音量设置有误。我尝试过以其他方式设置音量,但总是会出错。我不确定如何映射该卷,以便对代码所做的任何更改都将在容器中更改

以下是我的docker-compose.dev.yml文件,我的应用程序的Dockerfile和我的package.json文件。我还将包括我看到的错误

感谢您提供的任何帮助

docker-compose.dev.yml

version: "3"
services:
  app:
    container_name: database
    restart: always
    build: .
    volumes:
      - ./:/usr/src/app
    ports:
      - "8080:8080"
    links:
      - mongo
  mongo:
    container_name: mongo
    image: mongo:4
    ports:
      - "27017:27017"

Docker文件
FROM node:10

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
COPY package*.json ./

RUN npm install

# Bundle app source into container
COPY . .

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

package.json
{
  "name": "database",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "cookie-parser": "~1.4.3",
    "debug": "~2.6.9",
    "express": "~4.16.0",
    "http-errors": "~1.6.2",
    "morgan": "~1.9.0",
    "pug": "2.0.0-beta11"
  }
}

错误即时通讯...
WARNING: Image for service app was built because it did not already exist. 
To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating mongo ... done
Creating database ... done
Attaching to mongo, database
database | npm ERR! path /usr/src/app/package.json
database | npm ERR! code ENOENT
database | npm ERR! errno -2
database | npm ERR! syscall open
database | npm ERR! enoent ENOENT: no such file or directory, open 
'/usr/src/app/package.json'
database | npm ERR! enoent This is related to npm not being able to find a file.
database | npm ERR! enoent
database |
database | npm ERR! A complete log of this run can be found in:
database | npm ERR!     /root/.npm/_logs/2019-01-11T17_20_49_720Z-debug.log

最佳答案

我的docker-compose.dev.yml中的卷有误

我有

- ./:/usr/src/app

它必须是
- .:/usr/src/app

关于node.js - 在docker-compose中映射卷时获取 “npm ERR! enoent: no such file or directory”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54151560/

相关文章:

Docker 与网络和 "internal"属性示例组合

javascript - 更改 Sailsjs 中的 http 请求限制

javascript - Node.js 执行顺序查询

javascript - 全局 npm 依赖项 Express 将无法运行

nginx - 当 docker-compose 的一部分时,自定义 nginx 容器立即退出

docker - 不尊重 Google Cloud Build Docker build-arg

search - Docker 1.6 和 Registy 2.0

mongodb - 无法连接到 Dockerized MongoDb 服务器 - 绑定(bind) ip - 没有机会授权

postgresql - Docker Postgres容器中的.sql文件不会自动执行

javascript - 手动安装 mysql2 包 - 错误