Mi enfoque parece funcionar, pero probablemente sea ingenuo. Dime por qué está mal.
El subcomando de historial expone los ARG establecidos durante la construcción de Docker, por lo que no hay que ir allí. Sin embargo, cuando se ejecuta un contenedor, las variables de entorno proporcionadas en el comando de ejecución están disponibles para el contenedor, pero no forman parte de la imagen.
Entonces, en el Dockerfile, realice una configuración que no implique datos secretos. Establecer un CMD de algo así /root/finish.sh
. En el comando de ejecución, use variables de entorno para enviar datos secretos al contenedor. finish.sh
utiliza las variables esencialmente para terminar las tareas de compilación.
Para facilitar la administración de los datos secretos, colóquelos en un archivo cargado por Docker Run con el --env-file
interruptor. Por supuesto, mantenga el archivo en secreto. .gitignore
y tal.
Para mí, finish.sh
ejecuta un programa Python. Comprueba para asegurarse de que no se ha ejecutado antes, luego finaliza la configuración (por ejemplo, copia el nombre de la base de datos en Django settings.py
).