Je construis un conteneur en dessous de Dockerfile:
FROM ubuntu:14.04 ... RUN apt-get update && apt-get install -y vim #RUN ssh-keygen -f /root/.ssh/id_rsa -N strongpass123$%^ RUN ssh-keygen -f /root/.ssh/id_rsa ...
Je le fais assez rarement, mais il y a beaucoup de commands avant d'utiliser ssh-keygen
et après.
Je sais que je peux le faire à partir de script par docker exec -it thirsty_darwin sh script.sh
et puis tag image et ensuite utiliser le chaînage des conteneurs (images), mais ce n'est pas une solution aussi claire que je veux.
Même le pire des cas est avec ssh-add ~/.ssh/id_rsa
quand je dois utiliser l'outil expect. L'outil Expect a codé en dur mon mot de passe. Je ne veux pas le faire.
En règle générale, vous ne devez pas inclure de secrets dans les images Docker. Voir cette réponse pour plus d'informations sur ce sujet.
Docker ne prend pas en charge les versions interactives pour de bonnes raisons, comme expliqué dans ce numéro .
Si vous avez vraiment besoin de faire cela, vous pouvez utiliser docker commit
comme ceci:
docker build -t thirsty_darwin_base /path/to/Dockerfile docker run -it --name=thirsty_darwin_changes thirsty_darwin_base /bin/bash # do interactive stuff in the shell, then exit docker commit thirsty_darwin_changes thirsty_darwin
Maintenant, thirsty_darwin
a vos changements interactifs.