在构建了我的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'
}
我的docker文件如下
FROM node:18-alpine
EXPOSE 3000
WORKDIR /app
COPY ./frontend/package.json .
RUN npm install
COPY ./frontend .
COPY ./images .
CMD ["npm", "start"]
我预计这可能是一个节点版本问题,但我不是很确定的错误,谁能解释这个错误是什么,我可以如何解决?谢谢
3条答案
按热度按时间vwoqyblh1#
将Node.js v17移至OpenSSL v3.0。
您可以尝试切换到v16,或在Dockerfile中设置
ENV NODE_OPTIONS="--openssl-legacy-provider"
,或在package.json
中更新start
脚本以使用react-scripts --openssl-legacy-provider start
(或类似操作,具体取决于您的特定启动脚本)。这里有一个问题,您可以关注:https://github.com/facebook/create-react-app/issues/11708
ghg1uchk2#
我改变了节点版本
node:16.3.0-alpine
,它工作了,但是任何人都可以解释digital envelope routines
吗uz75evzq3#
检查package.json,在我的脚本下,
“脚本”:{“开始”:“世博会开始”、“安卓”:“世博会开始--安卓”、“ios”:“Expo启动-ios”,“web”:“博览会开始--网页”}
在终端运行中
博览会开始-网页