Dockerfile for Rhino

Hey all,

We are developing a toolbar with Rhino and are currently automating our tests. For this process we would also like to make a pipeline that runs these tests with a Gitlab runner. For this reason we also would like to have a docker file of Rhino. So far I have mainly found one for rhino.compute ( compute.rhino3d/Dockerfile at 8.x · mcneel/compute.rhino3d (github.com). Should this one be used for our case, or do we need a different Dockerfile?

With kind regards,

Hajo

Hi,

I would just point out that you don’t need Docker and Rhino.Compute at all for running an application with the Gitlab runner. If you run a Gitlab Runner in a non-virtual environment, you only need to register the runner instance in Gitlab and ensure that you run the service with the correct user. It however makes sense to use a dedicated PC then, but for developing more complex pipelines, I always used my own PC with a Runner instance, executing the pipeline in the background (doing that with Matlab not Rhino)

Note: Core-hour billing is required when running Rhino on a Windows Server-based operating system.

I would guess that this dockerfile looks quite good, but this is something McNeel should answer…

Hey Tom,

Thank you for the swift reply! We can run this in our own physical servers, so the dedicated PC would be covered. The main reason to use the docker is to containerize Rhino such that we can run the tests with a clean install from the server :slight_smile:

I will wait for the McNeel team to answer for the docker file.

With kind regards,

Hajo

Hey @Hajo_den_Ouden that’s a nifty idea.

@TomTom has covered a lot of things very nicely above so I’m just here to add info.

I’m not aware of a full Rhino Install inside a docker container yet. But if your goal is to spin up rhino, build your project and run tests, and trash the container, it looks like you could use GitLabs hosted runners Hosted runners on Windows | GitLab. I’ve had some nice success with CircleCI’s Orbs for my plugin Crash GitHub - crashcloud/rhino-orb: Rhino Orb. which runs in a similar fashion.

As @TomTom says you’ll need to set up core hour billing for this where Rhino is priced/charged differently to a standard license.

We do want to try to make this process easier for developers, and we’re starting to release tools to help.
Ehsan has made this lovely DotNet unit testing library here GitHub - mcneel/Rhino.Testing: NUnit dotnet unit testing for Rhino3D.

Hope this helps,

– cs