我有一个运行 Alpine Linux 3.16 的 Elixir 项目,项目中的一些应用程序依赖于 Node。我通过 AWS CodeBuild 收到错误消息
error:0308010C:digital envelope routines::unsupported
到目前为止,我发现了很多关于这个问题的话题,包括这个:错误消息“error:0308010C:digital envelope routines::unsupported”
看来我需要设置节点选项才能使用此标志
--openssl-legacy-provider
到目前为止,我已经尝试了以下解决方案,但都没有成功
将
ENV NODE_OPTIONS=--openssl-legacy-provider
放入损坏的应用程序的 Dockerfile
将
RUN export NODE_OPTIONS=--openssl-legacy-provider
放入损坏的应用程序的 Dockerfile
将
RUN npm audit fix --force
放入损坏的应用程序的 Dockerfile 中
更改应用程序中的 package.json 以使用
"scripts": { "deploy": "webpack --mode production --openssl-legacy-provider", "watch": "webpack --mode development --watch" }
到目前为止,这些都没有用,我正在寻找任何解决方案来解决这个问题。
现在可以通过放置
让它工作ENV NODE_OPTIONS=--openssl-legacy-provider
在 Dockerfile 的后期,还将 Alpine 升级到 3.17
有一个活动线程进一步详细说明了这个问题:https://github.com/erlang/docker-erlang-otp/issues/428