electron-userland / electron-builder

A complete solution to package and build a ready for distribution Electron app with “auto update” support out of the box
https://www.electron.build
MIT License
13.51k stars 1.73k forks source link

Build error when using cache for electron builder with Docker image builder:18-wine-11.23 #8083

Open DesktopMan opened 5 months ago

DesktopMan commented 5 months ago

I am using a very similar setup to the example described here: https://www.electron.build/multi-platform-build.html#docker

If I include this volume the build fails with the attached log:

-v ~/.cache/electron-builder:/root/.cache/electron-builder \

If I remove it the build succeeds but of course it fetches the Electron Builder dependencies every time.

package.json output.log

mmaietta commented 5 months ago

I think those instructions were for mac/linux as I wasn't aware that Windows can handle ~ path notation. I was under the impression you had to manually supply the path C:/my/folder or can use pwd per https://stackoverflow.com/questions/41485217/mount-current-directory-as-a-volume-in-docker-on-windows-10

DesktopMan commented 5 months ago

I think those instructions were for mac/linux as I wasn't aware that Windows can handle ~ path notation. I was under the impression you had to manually supply the path C:/my/folder or can use pwd per https://stackoverflow.com/questions/41485217/mount-current-directory-as-a-volume-in-docker-on-windows-10

I'm running it in Git Bash which handles the paths fine. The cache for electron works as expected, same syntax.

mmaietta commented 5 months ago

Honestly, I don't know what could be going wrong from that error message. Are there the correct permissions on the folder for docker runtime to allow mounting to?

This part of the error sticks out to me, but it should be able to execute just fine in wine on a windows x64 build machine

Backtrace:
    =>0 0x004bd000 in rcedit-ia32 (+0xbd000) (0x0031ff48)
DesktopMan commented 5 months ago

Here's a minimum project with the issue. Run ./build.sh from Git Bash. This triggers the issue for me. If I remove this line from build.sh it works as expected (disable the electron-builder cache):

-v "$PWD/electron-builder-cache":/root/.cache/electron-builder \

electron-builder-wine-crash.zip

DesktopMan commented 3 months ago

Update: This is still an issue with Electron v30.0.0 and Electron Builder v24.13.3, though I assume this is to be expected as the Wine version and winCodeSign version remains unchanged. See the zip above for a basic example that triggers this crash.

mmaietta commented 1 month ago

Thank you for the sample project, I've been using it extensively for testing on my laptop. I'd like to close this issue so that we can consolidate conversations there. Is that okay? Latest investigation results of compiling nsis within a docker container, or even just on arm64 macOS are here: https://github.com/electron-userland/electron-builder/issues/8038#issuecomment-2206720289