Atualmente, as imagens do Alpine são inicializadas diretamente /bin/sh
por padrão, sem a necessidade de especificar um shell para executar:
$ sudo docker run -it --rm alpine
/ # echo $0
/bin/sh
Isto é porque os alpine
Dockerfiles imagem agora contêm um CMD
comando, que especifica o shell para executar quando o recipiente começa: CMD ["/bin/sh"]
.
Nas versões mais antigas da imagem Alpine (antes de 2017), o comando CMD não era usado, pois o Docker criava uma camada adicional para o CMD, o que fazia com que o tamanho da imagem aumentasse. Isso é algo que os desenvolvedores de imagens da Alpine queriam evitar. Nas versões recentes do Docker (1.10 ou superior), o CMD não ocupa mais uma camada e foi adicionado às alpine
imagens. Portanto, desde que o CMD não seja substituído, imagens alpinas recentes serão inicializadas /bin/sh
.
Para referência, consulte o seguinte commit dos Alpine Dockerfiles da Glider Labs:
https://github.com/gliderlabs/docker-alpine/commit/ddc19dd95ceb3584ced58be0b8d7e9169d04c7a3#diff-db3dfdee92c17cf53a96578b4900