我试图在 Docker 容器内运行 create-react-app,并使用 docker-compose 自动化构建/运行,最终添加其他容器,如后端和数据库。在本地文件夹中运行 docker-compose 可以正常工作,但是将上下文设置为该文件夹并在父目录中运行会导致错误。
我尝试让容器列出当前文件,以便查看是否正确复制了 package.json,但 ls 和 bash 不在 node 镜像或容器的路径中,因此无法正确运行。
docker-compose.yaml
我尝试让容器列出当前文件,以便查看是否正确复制了 package.json,但 ls 和 bash 不在 node 镜像或容器的路径中,因此无法正确运行。
docker-compose.yaml
version: '3.5'
services:
dashboard-serve:
container_name: dashboard
build:
context: ./React-Frontend
dockerfile: Dockerfile
volumes:
- '.:/app'
- '/app/node_modules'
ports:
- '3001:3000'
environment:
- NODE_ENV=development
dockerfile
FROM node:12.2.0-alpine
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install and cache app dependencies
COPY package.json /app/package.json
RUN npm install
RUN npm install react-scripts@3.0.1 -g
# start app
CMD ["npm", "start"]
运行时会输出一个错误,提示找不到package.json文件。
dashboard | npm ERR! path /app/package.json
dashboard | npm ERR! code ENOENT
dashboard | npm ERR! errno -2
dashboard | npm ERR! syscall open
dashboard | npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
dashboard | npm ERR! enoent This is related to npm not being able to find a file.
dashboard | npm ERR! enoent
dashboard |
dashboard | npm ERR! A complete log of this run can be found in:
dashboard | npm ERR! /root/.npm/_logs/2019-07-30T15_55_23_780Z-debug.log
dashboard exited with code 254
volumes:
指令正在覆盖容器构建序列中的所有内容,并且还阻止了将来对package.json
文件的任何更新产生影响。你能否删除它们(并在 Docker 外进行实时开发)? - David Maze