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:
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
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
| 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
| 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.
