GitLab CI上的 Electron build错误



在GitLab CI上,电子构建失败:x509: certificate signed by unknown authority

由于我们已经将env-varGIT_SSL_NO_VERIFY设置为true,这应该不会发生,对吗?GitLab文档

你知道怎么解决这个问题吗?

相关日志输出:

$ export GIT_SSL_NO_VERIFY=true
..
> nx run dmc-el:make 
*********************************************************
DO NOT FORGET TO REBUILD YOUR FRONTEND & BACKEND PROJECTS
FOR PRODUCTION BEFORE PACKAGING / MAKING YOUR ARTIFACT!
*********************************************************
• electron-builder  version=22.14.13 os=5.4.109+
• skipped dependencies rebuild  reason=npmRebuild is set to false
• packaging       platform=linux arch=x64 electron=18.3.4 appOutDir=dist/apps/dmc-executables/linux-unpacked
⨯ Get "https://github.com/electron/electron/releases/download/v18.3.4/electron-v18.3.4-linux-x64.zip": x509: certificate signed by unknown authority
github.com/develar/app-builder/pkg/download.(*Downloader).follow.func1
/Volumes/data/Documents/app-builder/pkg/download/downloader.go:206
github.com/develar/app-builder/pkg/download.(*Downloader).follow
/Volumes/data/Documents/app-builder/pkg/download/downloader.go:234
github.com/develar/app-builder/pkg/download.(*Downloader).DownloadNoRetry
/Volumes/data/Documents/app-builder/pkg/download/downloader.go:128
github.com/develar/app-builder/pkg/download.(*Downloader).Download
/Volumes/data/Documents/app-builder/pkg/download/downloader.go:112
github.com/develar/app-builder/pkg/electron.(*ElectronDownloader).doDownload
/Volumes/data/Documents/app-builder/pkg/electron/electronDownloader.go:192
github.com/develar/app-builder/pkg/electron.(*ElectronDownloader).Download
/Volumes/data/Documents/app-builder/pkg/electron/electronDownloader.go:177
github.com/develar/app-builder/pkg/electron.downloadElectron.func1.1
/Volumes/data/Documents/app-builder/pkg/electron/electronDownloader.go:73
github.com/develar/app-builder/pkg/util.MapAsyncConcurrency.func2
/Volumes/data/Documents/app-builder/pkg/util/async.go:68
runtime.goexit
/usr/local/Cellar/go/1.16.5/libexec/src/runtime/asm_amd64.s:1371  
Error: /builds/daqmon/src/node_modules/app-builder-bin/linux/x64/app-builder exited with code ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
at ChildProcess.<anonymous> (/builds/daqmon/src/node_modules/builder-util/src/util.ts:250:14)
at Object.onceWrapper (node:events:642:26)
at ChildProcess.emit (node:events:527:28)
at maybeClose (node:internal/child_process:1092:16)
at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)

指出:

  • 当我们在本地docker容器中执行相同的命令时(与GitLab CI使用的相同映像),它工作

错误与git,所以GIT_SSL_NO_VERIFY是无用的。
当electron-builder试图通过https从GitHub下载一些文件时发生错误。

解决方案是在执行electron-builder之前更新docker-container中的CA证书:

apt-get update && apt-get --yes install ca-certificates && update-ca-certificates

我猜我的本地docker-container由于某种原因有新的证书,比GitLab CI docker-container。

感谢Jonas V的有用评论!

最新更新