Skip to main content

Exploiter CODESYS Virtual Control SL avec Docker Compose

Tous les produits de CODESYS Virtual Control SL peuvent être exploités non seulement avec le CODESYS Deploy Tool, mais aussi avec Docker Compose. Le Deploy Tool crée une configuration Compose que vous pouvez ensuite utiliser directement avec Docker Compose ou avec des outils graphiques tels que Portainer.

Exporter un fichier Compose depuis le Deploy Tool

À partir de la version 4.23.0.0, le CODESYS Deploy Tool peut exporter directement les runtimes virtuels configurés sous forme de fichier Compose.

Pour ce faire, dans l'onglet Opération, section VPLCs, sélectionnez la commande Exportation → Exporter la configuration en tant que Compose. Toutes les instances sont alors exportées avec leur configuration. Le fichier compose.yaml généré peut ensuite être utilisé directement avec Docker Compose.

Avis

Le Deploy Tool ne peut pas transférer tous les paramètres au format Compose, en particulier les entrées de la zone Commandes génériques. Ces paramètres figurent sous forme de commentaires dans le fichier exporté. Complétez-les manuellement si nécessaire.

Attribuer des adaptateurs réseau de manière exclusive avec nicmapper

nicmapper est un plug-in pour Docker qui fournit un accès direct et exclusif à un adaptateur réseau dans un conteneur Docker.

Tous les fichiers relatifs à nicmapper sont inclus dans le package CODESYS Virtual Control SL. Vous trouverez le code source, les fichiers d'installation et l'exemple compose.yaml dans le répertoire d'installation de CODESYS Development System, sous CODESYS Virtual Control for Linux SL\Delivery\nicmapper.

Avis

L'attribution des interfaces réseau via nicmapper décrite ci-après n'est actuellement prise en charge que pour Docker Compose. Avec Podman Compose, des adaptations manuelles peuvent être nécessaires.

Lors de l'exploitation via le CODESYS Deploy Tool ou la VirtualControlAPI, les adaptateurs réseau sont attribués de manière exclusive à un runtime par namespacing. Le conteneur obtient ainsi un accès direct à l'adaptateur réseau, aussi proche que possible du temps réel.

Docker Compose n'offre pas de prise en charge native pour cela. Afin de permettre un comportement comparable lors de l'utilisation de Compose, le plug-in Docker nicmapper est fourni.

Installer nicmapper

Pour installer nicmapper, les conditions suivantes doivent être remplies sur le système Linux :

  • Docker est installé

  • Docker Compose est installé

  • Le langage de programmation open source Go est installé

  • Les commandes ip et nsenter sont disponibles

  • Vous disposez des droits root

  1. Copiez le répertoire nicmapper du répertoire d'installation de CODESYS Development System sur le système Linux.

  2. Sur le système Linux, accédez au répertoire nicmapper.

  3. Si le fichier build.sh est au format Windows, convertissez-le au format UNIX.

    dos2unix build.sh
  4. Rendez le fichier exécutable.

    chmod +x build.sh
  5. Exécutez le script.

    sudo ./build.sh

Le script installe le plug-in ainsi que, en option, un service d'arrière-plan qui surveille les conteneurs Docker et attribue automatiquement les interfaces réseau.

Pour des informations détaillées sur l'installation, la désinstallation et le diagnostic des erreurs, consultez le fichier README.md fourni.

Attribuer des adaptateurs réseau dans le fichier Compose

L'attribution des interfaces réseau s'effectue via le label cds.nicmapper.nic. La valeur correspond au format connu du CODESYS Deploy Tool. Si vous indiquez plusieurs adaptateurs réseau, séparez-les par des virgules. L'adresse IP et le masque réseau sont facultatifs.

services:
    runtime:
    	image: codesyscontrol_virtuallinux:4.22.0.0
    	container_name: runtime
    	hostname: runtime
        labels:
      		cds.nicmapper.nic: "eth0/10.0.0.5/24,eth1/192.168.32.8/24"

Démarrez l'environnement dans le répertoire du fichier compose.yaml.

docker compose up -d

Avis

Lors de la création du fichier Compose avec le Deploy Tool, le label cds.nicmapper.nic est attribué au format correct.

Après le démarrage, nicmapper détecte automatiquement les conteneurs concernés et déplace les interfaces réseau indiquées dans le conteneur correspondant. Les produits de CODESYS Virtual Control SL peuvent ainsi être exploités également dans des environnements basés sur Compose, avec un comportement réseau comparable à celui d'une configuration via le CODESYS Deploy Tool. Lorsque le conteneur est arrêté, nicmapper remet l'adaptateur à la disposition de l'ensemble du système.

Un exemple complet de fichier compose.yaml est inclus dans le package.