RUN
e ENTRYPOINT
são duas maneiras diferentes de executar um script.
RUN
significa que ele cria um contêiner intermediário, executa o script e congela o novo estado desse contêiner em uma nova imagem intermediária. O script não será executado depois disso: sua imagem final deve refletir o resultado desse script.
ENTRYPOINT
significa que sua imagem (que ainda não executou o script) criará um contêiner e executará esse script.
Em ambos os casos, o script precisa ser adicionado e RUN chmod +x /bootstrap.sh
é uma boa ideia.
Também deve começar com um shebang (como #!/bin/sh
)
Considerando seu script ( bootstarp.sh
: alguns git config --global
comandos), seria melhor usar RUN
esse script uma vez em seu Dockerfile
, mas certifique-se de usar o usuário certo (o git config
arquivo global é %HOME%/.gitconfig
, que por padrão é o /root
único)
Adicione ao seu Dockerfile:
RUN /bootstart.sh
Em seguida, ao executar um contêiner, verifique o conteúdo de /root/.gitconfig
para confirmar se o script foi executado.
bootstarp.sh
bit executável está definido?