Deploying SketchUp SDK Application in Docker Container


I am attempting to deploy an application built using the SketchUp SDK within a Docker container with servercore:1909. The application is being built using node-gyp into a .node file to be callable through a Node.JS server. I have attempted/done the following but still get a crash (without error) when executing:

  • Building the program as an .exe and running it (It crashes without error)
  • Installed Visual Studio Build Tools 2015 and built using that
  • Installed C++ runtimes for 2015, 2017, 2019
  • Put the two .dll files at the root of the project and in the build folder

The thing is, this execution flow works fine on a desktop Windows 10 instance. It works correctly on multiple development machines, including one that had a clean install.

I have a feeling it has to do with some of the system DLLs that the SketchUp SDK is calling internally, which may not be present in the stripped down server core image.

I know it’s a unique situation but any help would be appreciated!

Is your docker host running the very same windows version? From the docs: Windows requires the host OS version to match the container OS version. If you want to run a container based on a newer Windows build, make sure you have an equivalent host build. Otherwise, you can use Hyper-V isolation to run older containers on new host builds. You can read more on Windows Container Version Compatibility in our Container Docs.

And, regarding c sdk dependencies:
The C API library for Windows is built using Microsoft Visual Studio 2015 SP1 (v140). It includes only 64-bit binaries. Building and releasing an application using the SketchUp C API for Windows requires including SketchUpAPI.dll and SketchUpCommonPreferences.dll, which can be found in the SketchUp C SDK for Windows. Also, the following C runtime DLLs must be included: msvcp140.dll and msvcr140.dll.

1 Like