Has anyone successfully built a Windows Docker image with RealityCapture included?
I’ve noticed that most Windows base images lack essential tools like winget and msiexec. It seems the only installation method for RC might be using a .exe installer. Does anyone know if an .exe installer for RC is available, or if there’s an alternative approach?
Including RealityCapture in a Windows-based Docker image can be challenging, especially due to the lack of essential system tools. Here are some suggestions and a potential approach to tackle this:
1. Installation Method for RealityCapture
RealityCapture .exe Installer: RealityCapture typically comes with a .exe installer. If you have this file, there are several ways to include it in a Docker image.
Alternative Installation Methods: If no other options (e.g., .msi or winget) are available, you may need to automate the manual installation process.
2. Issues with Windows Docker Images
Windows Docker base images are often minimal, which can cause issues:
winget: Windows Package Manager is usually missing.
msiexec: The tool for installing MSI files is often included but might not be present in certain images.
PowerShell Commands: PowerShell can serve as an alternative to run .exe files.
3. Solution Suggestions
Step 1: Choose the Right Base Image
mcr.microsoft.com/windows/servercore:ltsc2022 or nanoserver: These are minimal images, but they may lack many essential tools.
mcr.microsoft.com/windows:latest: A more comprehensive image that includes many tools, reducing the likelihood of missing utilities.
Step 2: Install Missing Tools
Installing winget: You can add winget manually to your image using PowerShell, but it can be a complex process.
msiexec: This is generally included in Windows Server Core images. If it’s missing, you’ll need to add it manually.
Step 3: Installing RealityCapture
If you have the .exe installer:
Copy the Installer to the Docker Image:
dockerfile
Copy code
COPY RealityCaptureInstaller.exe C:\
Run the Installer in Silent Mode:
dockerfile
Copy code
RUN C:\RealityCaptureInstaller.exe /quiet /norestart
This command runs the installer in silent mode, as user interaction isn’t possible in Docker.
Step 4: Licensing and Activation
RealityCapture requires a license. When running inside a Docker container, you’ll need to manage the licensing process. Instead of embedding the license in the image, use environment variables or external files to securely pass the license information.
4. Alternative Approach: Using a Virtual Machine
If integrating RealityCapture into Docker is too complex, consider using a virtual machine (VM) instead. This can simplify licensing and compatibility issues.
Conclusion
Including RealityCapture in a Windows Docker Image: It’s possible with a .exe installer, but preparation is required for missing tools.
Handling Missing Tools: Use PowerShell commands to install necessary utilities manually if needed.
Licensing: Automate the licensing process using external configuration or environment variables.