Mi pregunta se relaciona con las mejores prácticas sobre cómo ejecutar un script en una directiva docker-compose up.
Actualmente estoy compartiendo un volumen entre el host y el contenedor para permitir que los cambios en el script sean visibles tanto para el host como para el contenedor. Similar a un script de observación que consulta los cambios en el archivo de configuración. El script tiene que actuar en el host sobre los cambios de acuerdo con reglas predefinidas.
¿Cómo podría iniciar este script en una directiva docker-compose up o incluso desde el Dockerfile del servicio, de modo que cada vez que el contenedor suba, el "observador" pueda encontrar los cambios que se están realizando y escribiendo?
El contenedor en cuestión siempre se ejecutará en un sistema operativo Debian/Ubuntu y debería ser independiente de la arquitectura, lo que significa que también debería poder ejecutarse en ARM.
Deseo ejecutar un script en el Host, no dentro del contenedor. Necesito que el host cambie las configuraciones de su interfaz de red para adaptarse fácilmente a cualquier entorno. El HOST debe cambiar, repito. Esto debe ser sencillo para el usuario y fácilmente editable en una interfaz web que se ejecuta dentro de un CONTENEDOR para adaptarse a nuevos entornos.
Actualmente hago esto con un script que se ejecuta en el host basado en crontab. Solo deseo conocer las mejores prácticas y ejemplos de cómo ejecutar un script en HOST desde DENTRO de un CONTENEDOR, de modo que la implementación pueda ser tan fácil para el operador de instalación como ejecutar docker-compose up.
Solo deseo conocer las mejores prácticas y ejemplos de cómo ejecutar un script en HOST desde DENTRO de un CONTENEDOR, de modo que la implementación pueda ser tan fácil para el operador de instalación como ejecutar docker-compose up
Parece que no hay mejores prácticas que se puedan aplicar a su caso. Una solución alternativa propuesta aquí: ¿Cómo ejecutar el script de shell en el host desde el contenedor docker? es usar un truco client/server .
Esto es algo que podría tener serios problemas de seguridad, así que utilícelo bajo su propio riesgo.
Puede crear un alias para docker-compose up . Pon algo como esto en ~/.bash_aliases (en Ubuntu):
alias up="docker-compose up; ~/your_script.sh"No estoy seguro de si es posible ejecutar scripts en el host desde un contenedor, pero si es posible, es una falla de seguridad grave. Los contenedores deben estar aislados, ese es el punto de usar contenedores.