Skip to content

Using VIPM in Docker Containers

VIPM can be used in Docker containers to manage LabVIEW packages in containerized environments. This is particularly useful for CI/CD pipelines, automated testing, and reproducible builds.

Overview

VIPM works with NI's official LabVIEW container images, allowing you to:

  • Install and manage VI packages in containerized LabVIEW environments
  • Automate package installation in CI/CD pipelines
  • Create reproducible build environments
  • Build VI packages in containers

Docker Examples Repository

For complete working examples, see the examples-vipm-docker repository, which contains:

  • Docker configuration files
  • Environment setup examples
  • Step-by-step guides for common scenarios

Using NI's Official LabVIEW Container

NI provides official LabVIEW container images that work with VIPM:

Basic Setup

A typical Docker setup for VIPM includes:

  1. Dockerfile - Defines your container configuration based on NI's LabVIEW image
  2. docker-compose.yml - Orchestrates container setup and configuration
  3. .env file - Stores environment variables (VIPM serial number, etc.)

Example .env file:

# VIPM Pro activation credentials
VIPM_SERIAL_NUMBER=your-serial-number-here
VIPM_FULL_NAME=Your Full Name
VIPM_EMAIL=your.email@example.com

# Non-interactive mode: auto-confirm prompts and error on missing params
# (recommended for Docker/CI — prevents commands from hanging)
VIPM_NONINTERACTIVE=1

# Disable colored output for cleaner CI logs
NO_COLOR=1

See Environment Variables for the full list and GitHub Actions and CI/CD for workflow examples.

Running the Container

Build and run your container:

docker compose run --rm vipm-labview

VIPM CLI Commands in Containers

Once inside a running container, use the same CLI commands described in the CLI Command Reference. The examples below highlight container-specific considerations:

  • Activate VIPM Pro (required today). Use environment variables from your .env file:
vipm activate --serial-number "$VIPM_SERIAL_NUMBER" --name "$VIPM_FULL_NAME" --email "$VIPM_EMAIL"
  • Refresh metadata before every install to avoid stale caches when containers are rebuilt frequently:
vipm package-list-refresh
  • **Install packages or .vipc files** just like on desktop. If you have multiple LabVIEW versions in the container image, pair your command with--labview-version(and--labview-bitness` when needed).
vipm install -y oglib_boolean
vipm install -y project.vipc
  • List/verify installations to confirm the container state before running builds or tests:
vipm list --installed
ls -al /usr/local/natinst/LabVIEW-2025-64/user.lib/_OpenG.lib

💡 Because containers are often ephemeral, script these commands in your Docker entrypoint or CI workflow so every run activates, refreshes, installs, and verifies automatically.

No extra configuration needed in CI

When running inside a CI system (GitHub Actions, GitLab CI, etc.), VIPM auto-detects the environment and enables non-interactive mode. For standalone Docker usage outside CI, set VIPM_NONINTERACTIVE=1 in your .env file to prevent commands from hanging on missing input. See Environment Variables for details.

Building VI Packages in Containers

You can build VI packages from .vipb build specifications:

vipm build path/to/your_package.vipb

Expected output:

Building VI Package from path/to/your_package.vipb
✓ Build completed: builds/your_package.vip

Note: Package building on Linux is currently under development and may have some limitations. Check the VIPM 2026 Q1 Preview for the latest updates.

Use Cases for Containers

Using VIPM in containers is ideal for:

  • CI/CD Pipelines: Automate package installation and testing in GitHub Actions, GitLab CI, etc.
  • Reproducible Builds: Ensure consistent package versions across development environments
  • Automated Testing: Run LabVIEW tests with specific package dependencies
  • Development Environments: Share consistent development environments across teams

Additional Resources