Reactjs 使用npm init react app启动后立即退出Docker容器
我正在尝试用react项目启动Docker容器,该项目是使用npm init react app创建的 这是我的docker文件Reactjs 使用npm init react app启动后立即退出Docker容器,reactjs,docker,create-react-app,Reactjs,Docker,Create React App,我正在尝试用react项目启动Docker容器,该项目是使用npm init react app创建的 这是我的docker文件 # Specify a base image FROM node:alpine WORKDIR /usr/app # Install some depenendencies COPY ./package.json ./ RUN npm install COPY ./ ./ # Default command CMD ["npm", "run", "start"]
# Specify a base image
FROM node:alpine
WORKDIR /usr/app
# Install some depenendencies
COPY ./package.json ./
RUN npm install
COPY ./ ./
# Default command
CMD ["npm", "run", "start"]
Docker build.
成功创建了一个映像(带有大量npm警告),然后当我运行Docker run时,这就是终端中的输出
> mytest@0.1.0 start /usr/app
> react-scripts start
ℹ 「wds」: Project is running at http://172.17.0.2/
ℹ 「wds」: webpack output is served from
ℹ 「wds」: Content not from webpack is served from /usr/app/public
ℹ 「wds」: 404s will fallback to /
Starting the development server...
一旦点击启动开发服务器…
它就会停止在我的终端中运行。如果我选中Docker ps
我可以看到没有容器正在运行,如果我运行Docker ps-a
我可以看到容器已启动,然后立即退出
Docker logs
显示上述终端输出,有人遇到这种情况吗?只有在我的npm init react应用程序项目中,我的其他nodejs+express项目才能使用完全相同的docker文件正常运行,因此设置没有问题。结果表明,存在一个未决问题
现在降级到3.4级我尝试过降级,但没有成功。对我有用的是我添加的react应用程序扇区中的docker compose
文件:
stdin_open: true
这里还建议使用此解决方案:docker run-it-p 80:3000 imagename
解决我的问题。使用-it运行命令对我有效:
docker run -it -p 3001:3000 Imageid
遇到了同样的问题-它标志解决了问题
docker run -it -p 3001:3001 <image-id>
docker run-it-p3001:3001
我遇到了与您相同的问题,只是运行了上面的命令来修复它:
sudo docker run-it-p 3001:3000图像名称
希望它能帮助我解决这个问题。在package.json内部,将“react scripts”:“3.4.1”替换为“react scripts”:“3.4.0”
然后重建图像,它的工作!
他们把react脚本搞砸了:“3.4.1”
只需使用3.4.0版您也可以使用下面的-itd标志
sudo docker run -itd -p 3001:3000 Image-Name
你能分享你的docker run
命令的详细信息吗?你是否使用-d
标志来构建docker build。
它构建成功,然后我正在运行docker run
。它适用于我的其他项目,而不是使用npm init react app创建的项目。我在两个不同的react-a中尝试了它pp repos一个弹出,一个正常,都不起作用。在my nodejs+express api项目中尝试,效果良好容器将在其主进程存在后立即退出。尝试运行docker run-it--rm-v$(pwd):/usr/app-w/usr/app node:alpine
然后在提示下尝试npm install
然后运行npm start run
(注意:这可能会弄乱您的源目录,因此可能需要先备份您的项目)。您可能会通过这种方式获得一些有用的见解。然后,尝试同样的方法,但也可以在图像名称之前的运行行上使用-e SKIP\u PREFLIGHT\u CHECK=true
。在docker文件中使用EXPOSE 3000
,然后尝试基于问题进行构建。我认为这是正确的解决方案,因为问题没有提到docker-compose我为我的一个遗留软件包安装了它,但我要注意,4.0.0
及更高版本已经修复了这个问题。