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
Related Topics
- VIPM CLI Overview — feature summary and example commands
- GitHub Actions and CI/CD — integrate container workflows into automation
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:
- Dockerfile - Defines your container configuration based on NI's LabVIEW image
- docker-compose.yml - Orchestrates container setup and configuration
- .env file - Stores environment variables (VIPM serial number, etc.)
Example .env file:
VIPM_SERIAL_NUMBER=your-serial-number-here
VIPM_FULL_NAME=Your Full Name
VIPM_EMAIL=your.email@example.com
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
.envfile:
bash
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:
bash
vipm package-list-refresh
- **Install packages or
.vipcfiles** 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).
bash
vipm install oglib_boolean
vipm install project.vipc
- List/verify installations to confirm the container state before running builds or tests:
bash
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.
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