Puis-je build un conteneur Docker à partir de Dockerfile de manière interactive avec l'atsortingbution d'un pseudo TTY?

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.