如何使用react-scripts 3.4和babel-loader 8.1使yarn在Docker镜像中开始工作?

Kar*_*ter 6 docker webpack react-scripts yarnpkg babel-loader

我正在构建一个 Docker 映像,用于使用单独的 React 应用程序进行调试Dockerfile

\n\n
FROM node:11-alpine\n\nCOPY package.json .\nCOPY yarn.lock .\nRUN yarn install\n\nCOPY public/ ./public/\nCOPY src/ ./src/\n\nEXPOSE 3000\nCMD yarn run start\n
Run Code Online (Sandbox Code Playgroud)\n\n

package.json

\n\n
{\n  "name": "yarn-start-in-kubernetes",\n  "version": "0.1.0",\n  "private": true,\n  "dependencies": {\n    "react": "^16.8.1",\n    "react-dom": "^16.8.1",\n    "react-scripts": "2.1.3",\n    "babel-loader": "8.0.4"\n  },\n  "scripts": {\n    "start": "react-scripts start",\n    "build": "react-scripts build",\n    "test": "react-scripts test",\n    "eject": "react-scripts eject"\n  },\n  "browserslist": [\n    ">0.2%",\n    "not dead",\n    "not ie <= 11",\n    "not op_mini all"\n  ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

当图像与 一起使用时,它会按预期启动开发服务器docker run。升级至

\n\n
    "react-scripts": "2.1.3",\n    "babel-loader": "8.0.4"\n
Run Code Online (Sandbox Code Playgroud)\n\n

导致安装程序不再可用,因为开发服务器终止:

\n\n
> docker run dev\nyarn run v1.15.2\n$ react-scripts start\n\xe2\x84\xb9 \xef\xbd\xa2wds\xef\xbd\xa3: Project is running at http://172.17.0.2/\n\xe2\x84\xb9 \xef\xbd\xa2wds\xef\xbd\xa3: webpack output is served from \n\xe2\x84\xb9 \xef\xbd\xa2wds\xef\xbd\xa3: Content not from webpack is served from /public\n\xe2\x84\xb9 \xef\xbd\xa2wds\xef\xbd\xa3: 404s will fallback to /\nStarting the development server...\n\nDone in 2.72s.\n
Run Code Online (Sandbox Code Playgroud)\n\n

docker run后的回报Done in ...

\n\n

我想使用在生产中运行良好的最新版本。如何让它们在调试映像中工作?

\n\n

这些版本似乎不会影响 Docker 之外的开发服务器的功能,即yarn start可以使用两个版本组合。

\n

小智 4

我遇到了同样的问题,只是添加: stdin_open: true 到我的 docker-compose.yml