¿Es posible crear Dockerfile que ejecute un comando en el host cuando se crea la imagen?
Ahora estoy haciendo:
./script_that_creates_magic_file.sh docker build .con Dockerfile:
FROM alpine COPY magic_fileQuiero poder hacer:
docker build .con Dockerfile:
FROM alpine # invoke script_that_creates_magic_file.sh on the host COPY magic_filePor supuesto, este script está en el mismo directorio que Dockerfile.
(Sólo una sugerencia)
Por lo general, tenemos la siguiente estructura para construir nuestras imágenes acoplables:
my-image/ ├── assets │ ├── entrypoint.sh │ └── install.sh ├── build.sh ├── Dockerfile ├── README.md └── VERSIONscript_that_creates_magic_file.sh . Otras tareas comunes implican la descarga de archivos necesarios o la copia temporal de claves ssh del host. Finalmente, este script llamará a docker build .install.shRUN Considero que la estructura anterior es conveniente y autodocumentada, ya que todos los miembros del equipo pueden crear cualquier imagen (sin instrucciones/pasos especiales). El README está ahí para explicar lo que está haciendo la imagen... pero no te mentiré... por lo general está vacío... (o tiene un h1 para que lo muestre el gitlab) :)
Para responder a la pregunta; no, no hay una funcionalidad integrada para ejecutar un comando en el host antes de la docker build (es decir, no hay "ganchos" para activar scripts en el host).
Si proporciona más información sobre su caso de uso, posiblemente haya alternativas (por ejemplo, usar una combinación de --build-arg y docker compose)