Operar CODESYS Virtual Control SL con Docker Compose
Todos los productos de CODESYS Virtual Control SL pueden operarse no solo con el CODESYS Deploy Tool, sino también con Docker Compose. El Deploy Tool genera una configuración de Compose que puede utilizar directamente con Docker Compose o con herramientas gráficas como Portainer.
Exportar un archivo Compose desde el Deploy Tool
A partir de la versión 4.23.0.0, el CODESYS Deploy Tool puede exportar directamente los runtimes virtuales configurados como archivo Compose.
Para ello, en la pestaña Operación, en la sección VPLCs, seleccione el comando Exportación → Exportar configuración como «Compose». Con ello se exportan todas las instancias con su configuración. A continuación, el archivo compose.yaml generado puede utilizarse directamente con Docker Compose.
Aviso
El Deploy Tool no puede transferir todos los ajustes al formato Compose, en particular las entradas del área Comandos genéricos. Estos ajustes figuran como comentarios en el archivo exportado. Añádalos manualmente si es necesario.
Asignar adaptadores de red de forma exclusiva con nicmapper
nicmapper es un plug-in para Docker que proporciona acceso directo y exclusivo a un adaptador de red en un contenedor Docker.
Todos los archivos de nicmapper están incluidos en el paquete CODESYS Virtual Control SL. Encontrará el código fuente, los archivos de instalación y el ejemplo compose.yaml en el directorio de instalación de CODESYS Development System, en CODESYS Virtual Control for Linux SL\Delivery\nicmapper.
Aviso
La asignación de las interfaces de red mediante nicmapper que se describe a continuación solo es compatible actualmente con Docker Compose. Con Podman Compose pueden ser necesarios ajustes manuales.
Al operar a través del CODESYS Deploy Tool o de la VirtualControlAPI, los adaptadores de red se asignan de forma exclusiva a un runtime mediante namespacing. De este modo, el contenedor obtiene acceso directo al adaptador de red con la mayor capacidad de tiempo real posible.
Docker Compose no ofrece compatibilidad nativa para ello. Para permitir un comportamiento comparable también al utilizar Compose, se proporciona el plug-in de Docker nicmapper.
Instalar nicmapper
Para instalar nicmapper, el sistema Linux debe cumplir los siguientes requisitos:
Docker está instalado
Docker Compose está instalado
El lenguaje de programación de código abierto Go está instalado
Los comandos
ipynsenterestán disponiblesDispone de permisos de root
Copie el directorio
nicmapperdel directorio de instalación de CODESYS Development System al sistema Linux.En el sistema Linux, cambie al directorio
nicmapper.Si el archivo
build.shestá en formato Windows, conviértalo al formato UNIX.dos2unix build.shHaga que el archivo sea ejecutable.
chmod +x build.shEjecute el script.
sudo ./build.sh
El script instala el plug-in y, opcionalmente, un servicio en segundo plano que supervisa los contenedores Docker y asigna automáticamente las interfaces de red.
Encontrará información detallada sobre la instalación, la desinstalación y el diagnóstico de errores en el archivo README.md incluido.
Asignar adaptadores de red en el archivo Compose
La asignación de las interfaces de red se realiza mediante la etiqueta cds.nicmapper.nic. El valor corresponde al formato conocido del CODESYS Deploy Tool. Si especifica varios adaptadores de red, sepárelos con comas. La dirección IP y la máscara de red son opcionales.
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"Inicie el entorno en el directorio del archivo compose.yaml.
docker compose up -d
Aviso
Al crear el archivo Compose con el Deploy Tool, la etiqueta cds.nicmapper.nic se asigna en el formato correcto.
Tras el inicio, nicmapper detecta automáticamente los contenedores correspondientes y desplaza las interfaces de red especificadas al contenedor respectivo. De este modo, los productos de CODESYS Virtual Control SL también pueden operarse en entornos basados en Compose con un comportamiento de red comparable al de una configuración mediante el CODESYS Deploy Tool. Cuando se detiene el contenedor, nicmapper vuelve a poner el adaptador a disposición de todo el sistema.
En el paquete se incluye un ejemplo completo de un archivo compose.yaml.