Docker-compose up:没有这样的文件或目录,打开'/usr/src/app/package.json'

时间:2019-04-17 08:02:56

标签: node.js docker docker-compose

我正在使用docker和docker-compose运行我的express nodejs api。

这是我的docker文件:

FROM node:10-alpine

ARG NODE_ENV=development
ENV NODE_ENV=${NODE_ENV}

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

RUN chmod 755 /usr/src/app

CMD [ "npm", "start" ]

正如我提到的,我正在使用docker-compose,这是docker-compose.yml文件的内容:

version: "3"

services:
  service:
    build: .
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    ports:
      - 3001:3001
    command: npm start

运行docker-compose后,我遇到一个错误,提示它找不到package.json。

这是错误:

service_1  | npm ERR! path /usr/src/app/package.json 
service_1  | npm ERR! code ENOENT 
service_1  | npm ERR! errno -2 service_1  | npm ERR! syscall open 
service_1  | npm ERR! enoent ENOENT: no such file or directory, open '/usr/src/app/package.json' 
service_1  | npm ERR! enoent This is related to npm not being able to find a file. 
service_1  | npm ERR! enoent 
service_1  | 
service_1  | npm ERR! A complete log of this run can be found in: 
service_1  | npm ERR! /root/.npm/_logs/2019-04-17T07_54_07_773Z-debug.log
xuser-api_service_1 exited with code 254

请帮助找到我的错误。

2 个答案:

答案 0 :(得分:1)

您的工作目录是/ usr / src / app,并且您将软件包文件复制到了根目录。 你必须要像这样

# set working directory 
WORKDIR /usr/src/app

# install node_modules
ADD package.json /usr/src/app/package.json
RUN npm install

# copy codebase to docker codebase
ADD . /usr/src/app

答案 1 :(得分:0)

您可能正在使用不包含最新更改的旧图像。 确保您使用的是docker文件的最新映像。

docker-compose build 

然后运行

docker-compose up

如果您经常对Dockerfile进行更改以进行测试,请使用。

docker-compose up --build