使用 npm init react-app 时,Docker 容器在启动后立即退出

IT技术 reactjs docker create-react-app
2021-05-08 14:20:29

我正在尝试使用 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"]

Docker build .成功创建了一个图像(有很多 npm 警告),然后当我运行时,Docker run <image>这是我终端中的输出

> 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...

它一碰到Starting the development server...它就停止在我的终端中运行。如果我检查,Docker ps我可以看到没有容器正在运行,如果我运行,Docker ps -a我可以看到一个容器已启动,然后立即退出。

Docker logs显示上面的终端输出,有人遇到这种情况吗?它仅适用于我的 npm init react-app 项目,我的其他 nodejs + express 项目使用完全相同的 docker 文件运行良好

4个回答

我尝试降级,但没有奏效。对我有用的是docker-compose我添加的react应用程序部门的文件:

stdin_open: true

此处也建议使用此解决方案:github 上的问题

docker run -it -p 80:3000 imagename 解决我的问题。

运行命令-it对我有用:

docker run -it -p 3001:3000 Imageid

我解决了这个问题。在 package.json 中将 "react-scripts": "3.4.1" 替换为 "react-scripts": "3.4.0"

然后重建图像,它的工作原理!他们搞砸了 react-scripts": "3.4.1" 只需使用 3.4.0 版