Running Rhino WIP inside a Windows docker container

Hello,

I am trying to run Rhino WIP inside a Windows docker container. Automating the installation script in a Dockerfile following the steps from https://wiki.mcneel.com/rhino/installingrhino/6.

However, I am getting the below error -

Error 0x8007007e: Failed to load BundleUI.dll. Ensure your BundleUI.dll is included in the root of your BootstrapperApplication payloads.
Error 0x8007007e: Failed to start bootstrapper application.
Error 0x8007007e: Failed while running

How can we fix this? Or do we have an alternative method to run Rhino WIP inside a windows docker container?

Hey Litty, I assume you were trying to install Rhino inside a Windows Server container? Have you tried using a Windows 10 (build 1809) container (mcr.windows.com/windows:1809) running on a Windows Server 2019 LTSC (or 1809 SAC) host? Whilst I haven’t been able to get this working myself, I know people who have…

Hi Will, I have tried with Windows 10 (build 1809) container ( mcr.windows.com/windows:1809 ) , but came across below error while Rhino WIP installation -

i000: SetRegistryKeyToUseNewestIE failed because FEATURE_BROWSER_EMULATION key is not writable

Make sure you’re using “process” isolation, not Hyper-V.

Thanks Will. I could successfully pass the installation with “process” isolation. How can we configure the licensing for this setup? Possible with Cloud Zoo some way?

Great! Check out https://github.com/mcneel/compute.rhino3d/blob/will/docker/README.md and https://github.com/mcneel/compute.rhino3d/blob/will/docker/Dockerfile#L31

Hi Will, Thanks I could setup the License part as well. However, stuck while loading Plugins.
Line of code - var pluginObject = RCommon.Rhino.RhinoApp.GetPlugInObject("Grasshopper");
Error while running the docker container -

Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at UnsafeNativeMethods.CRhinoPlugInManager_GetPlugInId(String name) at Rhino.RhinoApp.GetPlugInObject(String plugin)

What version/build of Windows are you running on the host machine?

Windows 10 - Version 1809

Interesting, this Dockerfile works fine on Windows 10 build 1903. Could you please try commenting out the bit that pre-loads Grasshopper, i.e. lines 108-111?

No errors if I comment out those lines

Do you have custom components installed? Maybe one of those is causing the exception.

I tried emptying the components under %APPDATA%\Grasshopper\Libraries and %APPDATA%\Grasshopper\6\Libraries and then do a fresh docker build and docker run, still the same error. I inspected the container and there is no grasshopper custom libraries seen within the container image as well.

I have also tried upgrading to Windows 10 build 1903. Still the same error.

I’m at a loss. I thought docker was supposed to eradicate these kinds of “works on my machine” issues…! I’ll try to run this again on a fresh Windows 10 VM when I get the chance.