docker - 如何使用 react-scripts 3.4 和 babel-loader 8.1 使 yarn start 在 Docker 映像中工作?
问题描述
我正在构建一个 Docker 映像,用于调试我的 React 应用程序,并使用单独的Dockerfile
FROM node:11-alpine
COPY package.json .
COPY yarn.lock .
RUN yarn install
COPY public/ ./public/
COPY src/ ./src/
EXPOSE 3000
CMD yarn run start
和package.json
{
"name": "yarn-start-in-kubernetes",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.8.1",
"react-dom": "^16.8.1",
"react-scripts": "2.1.3",
"babel-loader": "8.0.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
]
}
当图像与docker run
. 升级到
"react-scripts": "2.1.3",
"babel-loader": "8.0.4"
导致设置不再可用,因为开发服务器终止:
> docker run dev
yarn run v1.15.2
$ 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 /public
ℹ 「wds」: 404s will fallback to /
Starting the development server...
Done in 2.72s.
之后的docker run
回报Done in ...
。
我想使用在生产中运行良好的更新版本。如何使它们在调试映像中工作?
这些版本似乎不会影响 Docker 之外的开发服务器的功能,即yarn start
适用于两种版本组合。
解决方案
我遇到了同样的问题,只是添加了:
stdin_open: true
到我的 docker-compose.yml
推荐阅读
- java - 来自 pmd:DataflowAnomalyAnalysis sslContext 的 Java UR-anomaly 和 DR-anomaly
- java - 遇到 HttpMessageNotReadableException 调用 getForEntity() restTemplate
- microsoft-graph-api - 使用具有多个条件的 $filter 在 Microsoft Graph API 中查询的方法
- angular - ngFor 在 ngAfterViewChecked 之后保留旧项目的 DOM 元素
- laravel - Laravel base64 图像接口
- c++ - 在 std::enable_if 中使用逻辑和/或的标准方法是什么?
- javascript - 如何在浏览器控制台上从 js 模块调用函数
- javascript - 如何使用字符串名称作为函数调用?如果 string = 'sum' 并且函数是 sum(a, b)?
- python - pandas_udf 给出与 pyarrow 相关的错误
- python - 如何转换为对数基数 2?