
Construyo un contenedor desde debajo 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
...
Lo hago muy raramente, pero hay muchos comandos antes ssh-keygen
y después de usarlo.
Sé que puedo hacerlo desde el script docker exec -it thirsty_darwin sh script.sh
y luego etiquetar la imagen y luego usar el encadenamiento de contenedores (imágenes), pero no es una solución tan clara como quiero.
Incluso el peor de los casos es ssh-add ~/.ssh/id_rsa
cuando tengo que usar la herramienta esperar. La herramienta Expect ha codificado mi contraseña. No quiero hacerlo.
Respuesta1
Generalmente, no debes incluir ningún secreto en las imágenes de Docker. Veresta respuestapara más información sobre este tema.
Docker no admite compilaciones interactivaspor buenas razones como se explica en este número.
Si realmente necesitas hacer esto, puedes usarlo docker commit
así:
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
Ahora thirsty_darwin
tiene sus cambios interactivos.
Actualización: Docker ha sido lanzadogestión de secretos más completadesde que se escribió esta respuesta.