我正在按照教程来 dockerize 一个简单的 React 应用程序。当我在没有卷选项的情况下运行 React 应用程序的容器时,它可以正常工作,没有任何问题。但是当我尝试将主机的应用程序目录映射到容器内的应用程序目录时,因为我想在开发时使用以下命令反映从主机目录到容器内的应用程序目录的更改:
docker run -p 5005:3000 -v $(pwd):/app --name react-app21 react-application:1 I get this error
>> sh: 1: react-scripts: not found
我确信我位于主机中的正确目录中。 注意:我使用的是 Linux WSL 这是我的 docker 文件说明:-
FROM node:18
WORKDIR /app
COPY package*.json .
RUN npm install
COPY . .
CMD export NODE_OPTIONS=--openssl-legacy-provider && npm start
这是一张错误的照片
我验证了node_modules存在于容器的app目录中,因为当我运行此命令时
docker run -p 5005:3000 react-application:1
没有音量选项它可以正常工作
然后我运行了这个命令:docker exec -it react-application:1 sh ls -a
我发现节点模块存在,然后我尝试添加卷选项并使用此选项创建映射:docker run -p 5005:3000 -v $(pwd):/app --name react-app21 react-application:1
我收到了该错误
我在主机目录中下载了节点模块并将它们放入 .dockerignore 文件中,它工作正常