【发布时间】:2020-03-21 16:38:36
【问题描述】:
我正在尝试使用 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 文件运行良好
【问题讨论】:
-
您能分享您的
docker run命令的详细信息吗?你在使用-d标志吗? -
要构建
docker build .,它会成功构建,然后我正在运行docker run <image>。它适用于我的其他项目,但不适用于使用npm init react-app创建的项目。我在 2 个不同的 react-app 存储库中尝试了它,一个被弹出,一个正常,都不起作用。在我的 nodejs + express api 项目中尝试过,效果很好 -
容器一旦主进程存在就会退出。尝试运行
docker run -it --rm -v $(pwd):/usr/app -w /usr/app node:alpine,然后在提示符下尝试npm install,然后是npm start run(注意:这可能会弄乱你的源目录,所以可能先备份你的项目)。通过这种方式,您可能会获得一些有用的见解。然后,尝试相同的操作,但也可以在图像名称之前的运行行中使用-e SKIP_PREFLIGHT_CHECK=true。 -
在你的 Dockerfile 中使用
EXPOSE 3000然后尝试构建
标签: reactjs docker create-react-app