RUN
y ENTRYPOINT
son dos formas diferentes de ejecutar un script.
RUN
significa que crea un contenedor intermedio, ejecuta el script y congela el nuevo estado de ese contenedor en una nueva imagen intermedia. El script no se ejecutará después de eso: se supone que su imagen final refleja el resultado de ese script.
ENTRYPOINT
significa que su imagen (que aún no ha ejecutado el script) creará un contenedor y ejecutará ese script.
En ambos casos, es necesario agregar el script y RUN chmod +x /bootstrap.sh
es una buena idea.
También debería comenzar con un shebang (como #!/bin/sh
)
Teniendo en cuenta su secuencia de comandos ( bootstarp.sh
: un par de git config --global
comandos), sería mejor que RUN
esa secuencia de comandos una vez en su Dockerfile
, pero asegúrese de usar el usuario correcto (el git config
archivo global es %HOME%/.gitconfig
, que por defecto es el /root
indicado)
Agregue a su Dockerfile:
RUN /bootstart.sh
Luego, cuando ejecute un contenedor, verifique el contenido de /root/.gitconfig
para confirmar que se ejecutó el script.
bootstarp.sh
Tiene el bit ejecutable configurado?