vimaccOA for Docker
This chapter describes how to set up and run vimaccOA within a Docker container using a Debian 11 base image, installing vimaccOA packages, and optionally enabling a VNC-accessible GUI. Configuration is handled through environment variables and build arguments, with predefined port mappings.
vimaccOA Docker Image
This example shows a Docker-based runtime setup for vimaccOA, the integrated video management system for WinCC OA. It builds a Debian-based image, installs the vimaccOA packages, and can optionally provide a GUI via VNC. See the section "Quick start" below:
Quick start
# Copy your vimacc .deb package into the build folder. You can find the vimaccOA-<version>-amd64.deb
in the WinCC OA installation and also on the web page https://www.winccoa.com/downloads/category/wincc-oa-320.html
# Optionally additional WinCC OA packeges (WinCC OA 3.19 for Debian 11 base image).
mkdir -p build/vimacc/deb
cp /path/to/vimacc.deb build/vimaccOA/deb/
# Build the container image
docker compose build
# Run the container
docker compose up -d
The container starts with the default configuration and exposes all required vimacc ports
Features
- Built on Debian 11.
- GUI access via VNC on port 5901.
- Built-in confd-based templating system.
- Service configuration driven by environment variables.
- Predefined, clearly structured port mappings.
Build Arguments
| Argument | Description |
|---|---|
| PRODUCT | (reserved) Always use vimaccOA |
| GUI | Set to true to include the GUI (VNC on port 5901) |
Example:
args:
PRODUCT=vimaccOA
GUI=true
️ Environment Variables
| Variable | Purpose |
|---|---|
| VIMACC_HOSTNAME | Container hostname & internal controller name |
| VIMACC_CONFIG_CLIENT_SERVERTYPE | One of config, proxy, or slave |
| VIMACC_CONFIG_CLIENT_SERVER1_HOST | Primary config server address |
| VIMACC_CONFIG_CLIENT_SERVER1_PORT | Primary config server port |
| VIMACC_CONFIG_CLIENT_SERVER2_HOST | Secondary config server address (optional) |
| VIMACC_CONFIG_CLIENT_SERVER2_PORT |
Secondary config server port |
| VIMACC_CONFIG_SERVER_PORT | Local config instance port |
| VIMACC_CONFIG_SLAVE_SERVER_PORT | Local config-slave port |
| IMACC_CONFIG_PROXY_SERVER_PORT | Local config-proxy port |
| VIMACC_REPORTCLIENT_SERVERPORT | Reporting client port |
| VIMACC_INTERFACE_OPERATORPORT | Operator interface port |
| VIMACC_INTERFACE_DATACONNECTIONPORT | Data channel port |
| VIMACC_PLAYBACK_OPERATORPORT | Playback operator port |
| VIMACC_PLAYBACK_DATACONNECTIONPORT | Playback data channel |
| VIMACC_PLAYBACK_PROXY_OPERATORPORT | Proxy playback operator |
| VIMACC_PLAYBACK_PROXY_DATACONNECTIONPORT | Proxy playback data channel |
| VIMACC_INTERFACE_PROXY_OPERATORPORT | Proxy operator interface |
| VIMACC_INTERFACE_PROXY_DATACONNECTIONPORT | Proxy data connection |
| VIMACC_STREAMING_OPTIONS_PAYLOADMTUSIZE | Stream MTU (e.g. for VPN) |
| VIMACC_STREAMING_OPTIONS_DEJITTERDELAY | Jitter buffer delay |
| VIMACC_GUI_VIDEORENDERER | Renderer backend (e.g. software) |
| VIMACC_GUI_AUTOLOGOUT_INACTIVITYSECS | Auto logout (idle time) |
| VIMACC_GUI_SHOWALLLIVESTREAMS | Show all live streams in GUI |
Port Mapping
ports:
"5901:5901" # GUI (VNC)
"4225:4225" # VIMACC_REPORTCLIENT_SERVERPORT
"9360:9360" # VIMACC_CONFIG_PROXY_SERVER_PORT
"9365:9365" # VIMACC_CONFIG_SLAVE_SERVER_PORT
"9370:9370" # VIMACC_CONFIG_SERVER_PORT (shared with SERVER1/2)
"9371:9371" # VIMACC_PLAYBACK_OPERATORPORT
"9372:9372" # VIMACC_PLAYBACK_DATACONNECTIONPORT
"9375:9375" # VIMACC_INTERFACE_OPERATORPORT
"9376:9376" # VIMACC_INTERFACE_DATACONNECTIONPORT
"9729:9729" # Internal data port (e.g. database sync)
"9731:9731" # VIMACC_PLAYBACK_PROXY_OPERATORPORT
"9732:9732" # VIMACC_PLAYBACK_PROXY_DATACONNECTIONPORT
"9735:9735" # VIMACC_INTERFACE_PROXY_OPERATORPORT
"9736:9736" # VIMACC_INTERFACE_PROXY_DATACONNECTIONPORT
Accessing the Container
To open a shell inside a running container:
docker exec -it -u vimacc vimacc-vms bash
If the container was built with GUI=true, you can also access its graphical user interface (GUI) via VNC:
- VNC port: 5901.
- Default resolution: 1024×768 (customizable at build time).
- Connect to localhost:5901 using a VNC client (e.g., TigerVNC, RealVNC).
Authentication is disabled by default. For production environments, enable authentication to secure the VNC session.
docker exec -it -u vimacc vimacc-vms bash
Main start scripts:
- /usr/local/bin/start.sh – Initializes confd and vimacc.
- /usr/local/bin/start_vimacc.sh – Starts vimacc processes.
- /usr/local/bin/start_vnc.sh – Starts the GUI (if enabled).
- /usr/local/bin/stop_vimacc.sh – Stops vimacc processes.
Built With
- Debian 11
- confd v0.16.0
- openssl 3.0.8
- xfce4 (GUI environment, optional)
This project is licensed under the MIT License.
