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:

Note:
This setup focuses on the container runtime. The vimaccOA software itself is included.

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
Note:
Ensure the .deb package is located at tools/docker/build/vimaccOA/deb/. Otherwise, the image will not include the vimacc software.

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

Table 1.
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

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.