【问题标题】:docker : npm ERR! enoent ENOENT码头工人:npm 错误! ENOENT
【发布时间】:2020-12-20 02:46:22
【问题描述】:

您好,我有以下设置泊坞窗:

docker-compose.yml:

version: "3"

services:
  micro-hr:
    build: ./backend/micro-hr
    entrypoint: ./backend/micro-hr/.docker/entrypoint.sh
    container_name: micro-hr
    environment:
      - CHOKIDAR_USEPOLLING=true
    ports:
      - 3001:3000
    volumes:
      - .:/home/node/app

dockerfile:

FROM node:12.14.0-alpine3.11

RUN apk add --no-cache bash git

RUN touch /home/node/.bashrc | echo "PS1='\w\$ '" >> /home/node/.bashrc

RUN npm config set cache /home/node/app/.npm-cache --global

WORKDIR /home/node/app

COPY --chown=node:node . ./

COPY package*.json .env ./

USER node

entrypoint.sh

#!/bin/bash

npm config set cache /home/node/app/.npm-cache --global

cd /home/node/app

npm install
npm run start:dev

但我在 docker-compose up 上遇到了这个错误:

micro-hr              | npm WARN saveError ENOENT: no such file or directory, open '/home/node/app/package.json'
micro-hr              | npm WARN enoent ENOENT: no such file or directory, open '/home/node/app/package.json'
micro-hr              | npm WARN app No description
micro-hr              | npm WARN app No repository field.
micro-hr              | npm WARN app No README data
micro-hr              | npm WARN app No license field.
micro-hr              | 
micro-hr              | up to date in 1.154s
micro-hr              | found 0 vulnerabilities
micro-hr              | 
micro-hr              | npm ERR! code ENOENT
micro-hr              | npm ERR! syscall open
micro-hr              | npm ERR! path /home/node/app/package.json
micro-hr              | npm ERR! errno -2
micro-hr              | npm ERR! enoent ENOENT: no such file or directory, open '/home/node/app/package.json'
micro-hr              | npm ERR! enoent This is related to npm not being able to find a file.
micro-hr              | npm ERR! enoent 
micro-hr              | 
micro-hr              | npm ERR! A complete log of this run can be found in:
micro-hr              | npm ERR!     /home/node/app/.npm-cache/_logs/2020-09-01T01_00_33_229Z-debug.log

我怀疑它与节点用户有关,但我在没有的情况下对其进行了测试,但事实并非如此 我用 docker-compose log 得到了这个。

【问题讨论】:

  • 您的 volumes: 正在使用来自主机系统的内容覆盖图像中内置的代码,但这与图像中的内容不匹配。如果您正在尝试积极开发您的应用程序,您可能会发现安装 Node 并拥有一个实际的本地开发环境比尝试使用 Docker 模拟它更容易。
  • 很高兴为您提供帮助:)
  • 我会把它作为答案发布,谢谢队友。

标签: node.js docker


【解决方案1】:

你的 docker-compose.yml 说

volumes:
      - .:/home/node/app

去掉这两行,在本地构建应用(不带 Docker),只在部署的时候构建 Docker 镜像。

更多解释请参考docker-compose fails to start with npm ERR! enoent ENOENT: no such file or directory, open '/usr/src/app/package.json'

【讨论】:

    猜你喜欢
    • 2020-09-08
    • 2016-03-24
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 2015-03-12
    相关资源
    最近更新 更多