Yus*_*suf 35 version envelope node.js docker
构建我的 React docker 映像后,我尝试运行docker run image_name
,之后日志抛出此错误
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
at module.exports (/app/node_modules/webpack/lib/util/createHash.js:135:53)
at NormalModule._initBuildHash (/app/node_modules/webpack/lib/NormalModule.js:417:16)
at /app/node_modules/webpack/lib/NormalModule.js:452:10
at /app/node_modules/webpack/lib/NormalModule.js:323:13
at /app/node_modules/loader-runner/lib/LoaderRunner.js:367:11
at /app/node_modules/loader-runner/lib/LoaderRunner.js:233:18
at context.callback (/app/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
at /app/node_modules/babel-loader/lib/index.js:59:103 {
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Run Code Online (Sandbox Code Playgroud)
我的docker文件如下
FROM node:18-alpine
EXPOSE 3000
WORKDIR /app
COPY ./frontend/package.json .
RUN npm install
COPY ./frontend .
COPY ./images .
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)
我预计这可能是节点版本问题,但我不太确定该错误,有人能解释一下这个错误是什么以及我该如何解决吗?谢谢
dav*_*ell 27
您可以尝试切换到 v16,或ENV NODE_OPTIONS="--openssl-legacy-provider"在 Dockerfile 中进行设置,或更新start脚本以package.json供使用react-scripts --openssl-legacy-provider start(或类似的操作,具体取决于您的特定启动脚本)。
您可以在此处关注一个问题:https ://github.com/facebook/create-react-app/issues/11708
小智 18
开始您的申请:
更新您的启动脚本以package.json使用
react-scripts --openssl-legacy-provider start
Run Code Online (Sandbox Code Playgroud)
构建您的应用程序:
更新您的构建脚本以package.json使用
react-scripts --openssl-legacy-provider build
Run Code Online (Sandbox Code Playgroud)
mar*_*der 12
我在 Heroku 上也遇到了同样的问题。在构建阶段,我遇到了同样的错误。为了解决这个问题,我只需设置为环境变量:
NODE_OPTIONS="--openssl-legacy-provider"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
128780 次 |
| 最近记录: |