reactjs - 如何使用Dockerfile.dev和Yarn构建React应用

标签 reactjs docker

我正在尝试使用docker运行react应用程序。这是我的步骤:
我已经使用react-native-cli创建了一个React应用并添加了Dockerfile.dev文件。我的Dockerfile.dev文件包含以下代码:

# Specify a base image
FROM node:alpine

WORKDIR '/app'

# Install some depenendencies
COPY package.json .
RUN yarn install
COPY . .

# Uses port which is used by the actual application
EXPOSE 3000

# Default command
CMD ["yarn", "run", "start"]
然后我执行此命令并获得此输出。但是它没有显示任何访问它的端口。
docker build -f Dockerfile.dev .
OP:成功构建ad79cd63eba3
docker run ad79cd63eba3
OP:
yarn run v1.22.4
$ 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 /app/public
ℹ 「wds」: 404s will fallback to /
Starting the development server...

Done in 2.02s.
谁能告诉我我如何启动开发服务器,它向我显示了像Http://localhost:3000这样的端口来访问它。
完整代码:https://github.com/arif2009/frontend.git

最佳答案

Docker和最新版本的react脚本存在问题。
这是关于它的Github线程:https://github.com/facebook/create-react-app/issues/8688

针对您的情况的(临时和最快)解决方案是降级package.json文件中的react-scripts版本。
来自:

    "dependencies": {
     ...
    "react-scripts": "3.4.1"
    }

至 :
   "dependencies": {
     ...
    "react-scripts": "3.4.0"
    }

我使用此配置测试了您的项目,并且现在可以正常运行了。

在上面的Github线程中,这似乎是带有docker-compose和stdin_open: true选项的另一种解决方案(基本上与-it命令的docker run标志相对应。如果react-scripts版本对您很重要,您也可以尝试这样做(并且您想保留最新版本)

关于reactjs - 如何使用Dockerfile.dev和Yarn构建React应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62402717/

相关文章:

javascript - FlatList 不会在 Prop 更改时重新渲染

javascript - 在 createSelector 中使用钩子(Hook)安全吗?

docker - "docker run --rm -v"从守护程序: status code not OK but 500获取错误响应

docker - Docker:需要在symfony项目中保留文件夹

reactjs - React (Native) Context API 导致 Stack Navigator (React Navigation 5) 在状态更新后重新渲染

javascript - 本地 JSON 文件未在 React 中解析

javascript - 如何在单个域上部署自适应 Next Js 网站?

.net - Jenkins .Net和Docker?

amazon-web-services - 选择合适的 AWS 服务和软件工具

python - Librosa 在 Docker 中引发了 OSError ('sndfile library not found' )