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”,它正在工作,谢谢