Dockerfile不复制pakcage json

Dockerfile不复制pakcage json,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我的文件夹结构是这样的 project/ -backend/ Dockerfile package.json - docker-compose.yml FROM node:14-alpine as base WORKDIR /src COPY ./package*.json /src EXPOSE 3000 FROM base as dev ENV NODE_ENV=development RUN npm install -g nodemon &a

我的文件夹结构是这样的

project/
   -backend/
       Dockerfile
       package.json
   - docker-compose.yml
FROM node:14-alpine as base

WORKDIR /src
COPY ./package*.json /src
EXPOSE 3000


FROM base as dev
ENV NODE_ENV=development
RUN npm install -g nodemon && npm install
COPY . /
CMD ["npm run start:dev"]
我的dockerfile看起来像这样

project/
   -backend/
       Dockerfile
       package.json
   - docker-compose.yml
FROM node:14-alpine as base

WORKDIR /src
COPY ./package*.json /src
EXPOSE 3000


FROM base as dev
ENV NODE_ENV=development
RUN npm install -g nodemon && npm install
COPY . /
CMD ["npm run start:dev"]
只是一个简单的dockerfile,没什么疯狂的

和我的码头工人一样

version: '3'
services:

  web:
    build:
      context: ./backend
      target: dev
    volumes:
      - .:/src
    command: npm run start:dev
    ports:
      - "3000:3000"
    environment:
      NODE_ENV: development
      DEBUG: nodejs-docker-express:*
当我做docker撰写时,会出现一个错误

web_1  | npm ERR! code ENOENT
web_1  | npm ERR! syscall open
web_1  | npm ERR! path /src/package.json
web_1  | npm ERR! errno -2
web_1  | npm ERR! enoent ENOENT: no such file or directory, open '/src/package.json'
web_1  | npm ERR! enoent This is related to npm not being able to find a file.
web_1  | npm ERR! enoent
web_1  |
web_1  | npm ERR! A complete log of this run can be found in:
web_1  | npm ERR!     /root/.npm/_logs/2021-05-22T20_54_52_629Z-debug.log
这意味着package.json没有被复制,我知道。 但我不知道如何修复它。 我认为错误在dockerfile中,但我无法修复它


有人能告诉我我做错了什么吗?

尝试编辑docker compose,您的卷中有一个问题,即复制了hole项目目录

替换

    volumes:
      - .:/src


volumes:
指令正在用主机系统的内容替换映像中内置的Dockerfile的所有内容,包括
package.json
文件。删除
volumes:
block会改善情况吗?你是在构建映像时出错(docker compose build是自己工作的吗?)还是在运行映像时出错?我是在运行docker compose up时出错的,你给了我一个主意。在卷中,我添加了“卷:-./backend:/src”,它正在工作,谢谢