vimaccOA für Docker

Dieses Kapitel beschreibt, wie vimaccOA in einem Docker-Container eingerichtet und ausgeführt wird, unter Verwendung eines Debian 11-Basis-Images, wobei vimaccOA-Pakete installiert und optional eine per VNC zugängliche GUI aktiviert wird. Die Konfiguration erfolgt über Umgebungsvariablen und Build-Argumente, mit vordefinierten Portzuordnungen.

vimaccOA-Docker-Image

Dieses Beispiel zeigt ein Docker-basiertes Laufzeitsetup für vimaccOA, das integrierte Videomanagementsystem für WinCC OA. Es erstellt ein Debian-basiertes Image, installiert die vimaccOA-Pakete und kann optional eine GUI über VNC bereitstellen- Siehe die Sektion "Schnellstart" unterhalb:

Note:
Dieses Setup konzentriert sich auf die Container-Laufzeitumgebung. Die vimaccOA-Software selbst ist enthalten.

Schnellstart

# 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:
Stellen Sie sicher, dass sich das .deb-Paket unter tools/docker/build/vimaccOA/deb/ befindet. Andernfalls enthält das Image die vimacc-Software nicht.

Der Container startet mit der Standardkonfiguration und stellt alle erforderlichen vimacc-Ports bereit.

Features

  • Auf Debian 11 aufgebaut.
  • GUI-Zugriff über VNC auf Port 5901.
  • Eingebautes, confd-basiertes Templating-System.
  • Dienstkonfiguration über Umgebungsvariablen gesteuert.
  • Vordefinierte, klar strukturierte Port-Zuordnungen.

Build-Argumente

Table 1.
Argument Beschreibung
PRODUCT (reserviert) Immer vimaccOA verwenden
GUI Auf true setzen, um die GUI einzuschließen (VNC auf Port 5901)
Example:
args:
PRODUCT=vimaccOA
GUI=true

Umgebungsvariablen

Table 2.
Variable Zweck
VIMACC_HOSTNAME Container-Hostname und interner Controller-Name
VIMACC_CONFIG_CLIENT_SERVERTYPE Einer von config, proxy oder slave
VIMACC_CONFIG_CLIENT_SERVER1_HOST Primäre Config-Server-Adresse
VIMACC_CONFIG_CLIENT_SERVER1_PORT Primärer Config-Server-Port
VIMACC_CONFIG_CLIENT_SERVER2_HOST Sekundäre Config-Server-Adresse (optional)
VIMACC_CONFIG_CLIENT_SERVER2_PORT Sekundärer Config-Server-Port
VIMACC_CONFIG_SERVER_PORT Port der lokalen Config-Instanz
VIMACC_CONFIG_SLAVE_SERVER_PORT Port des lokalen Config-Slaves
VIMACC_CONFIG_PROXY_SERVER_PORT Port des lokalen Config-Proxys
VIMACC_REPORTCLIENT_SERVERPORT Reporting-Client-Port
VIMACC_INTERFACE_OPERATORPORT Operator-Schnittstellenport
VIMACC_INTERFACE_DATACONNECTIONPORT Datenkanal-Port
VIMACC_PLAYBACK_OPERATORPORT Playback-Operator-Port
VIMACC_PLAYBACK_DATACONNECTIONPORT Playback-Datenkanal
VIMACC_PLAYBACK_PROXY_OPERATORPORT Proxy-Playback-Operator
VIMACC_PLAYBACK_PROXY_DATACONNECTIONPORT Proxy-Playback-Datenkanal
VIMACC_INTERFACE_PROXY_OPERATORPORT Proxy-Operator-Schnittstelle
VIMACC_INTERFACE_PROXY_DATACONNECTIONPORT Proxy-Datenverbindung
VIMACC_STREAMING_OPTIONS_PAYLOADMTUSIZE Stream-MTU (z. B. für VPN)
VIMACC_STREAMING_OPTIONS_DEJITTERDELAY Jitter-Pufferverzögerung
VIMACC_GUI_VIDEORENDERER Renderer-Backend (z. B. software)
VIMACC_GUI_AUTOLOGOUT_INACTIVITYSECS Automatisches Abmelden (Leerlaufzeit)
VIMACC_GUI_SHOWALLLIVESTREAMS Alle Live-Streams in der GUI anzeigen

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 

Zugriff auf den Container

So öffnen Sie eine Shell in einem laufenden Container:

docker exec -it -u vimacc vimacc-vms bash

Wenn der Container mit GUI=true erstellt wurde, können Sie außerdem über VNC auf seine grafische Benutzeroberfläche (GUI) zugreifen:

  • VNC-Port: 5901.
  • Standardauflösung: 1024×768 (kann zur Build-Zeit geändert werden).
  • Mit einem VNC-Client (z. B. TigerVNC, RealVNC) zu localhost:5901 verbinden.

Die Authentifizierung ist standardmäßig deaktiviert. Für Produktivumgebungen soll die Authentifizierung aktiviert werden, um die VNC-Sitzung abzusichern.

docker exec -it -u vimacc vimacc-vms bash

Hauptstartskripte:

  • /usr/local/bin/start.sh – Initialisiert confd und vimacc.
  • /usr/local/bin/start_vimacc.sh – Startet vimacc-Prozesse.
  • /usr/local/bin/start_vnc.sh – Startet die GUI (falls aktiviert).
  • /usr/local/bin/stop_vimacc.sh – Stoppt vimacc-Prozesse.

Erstellt mit

  • Debian 11
  • confd v0.16.0
  • openssl 3.0.8
  • xfce4 (GUI-Umgebung, optional)

Dieses Projekt steht unter der MIT-Lizenz.