Obtener credenciales por instancia en instancias de Docker

0

Estoy trabajando para que se ejecute un sistema de tareas distribuidas basado en Docker, y el principal punto de conflicto con el que me encuentro es cómo obtener credenciales en cada VM de Docker.

Básicamente, cada instancia debe tener un nombre único y una contraseña / certificado SSL. Luego se conecta de vuelta a casa en el inicio y comienza a procesar tareas.

Hacer la instancia es bastante sencillo, pero ¿cuál es un buen enfoque para inyectar las credenciales en cada instancia? El consenso general parece ser "usar variables de entorno", pero usar una variable de entorno de más de 500 caracteres (por ejemplo, el certificado SSL completo) parece crudo.

En este momento, la aplicación que estoy tratando de empaquetar utiliza un archivo JSON simple para la configuración. ¿Hay alguna forma de agregar archivos a una instancia de Docker en tiempo de ejecución o algo similar? ¿Quizás un último paso de compilación que toma un archivo definido paramétricamente?

Nombre falso
fuente

Respuestas:

1

Puede agregar un volumen Docker y apuntarlo, por contenedor, a una carpeta en el host que contenga el certificado SSL que desee. Incluso puede hacer un volumen de "archivo único".

docker run -d \
    --name=worker0 \
    -v "/etc/ssl/worker0.crt":/etc/ssl/private/container.crt \
    -v "/etc/ssl/worker0.key":/etc/ssl/private/container.key \
    myworkerimage

docker run -d \
    --name=worker1 \
    -v "/etc/ssl/worker1.crt":/etc/ssl/private/container.crt \
    -v "/etc/ssl/worker1.key":/etc/ssl/private/container.key \
    myworkerimage

Entonces, sea lo que sea que esté utilizando para iniciar los trabajadores, un script bash, ansible, etc. puede seleccionar el certificado correcto en el host, pero dentro de cada contenedor lanzado la situación es idéntica (el certificado siempre está en la misma ruta).

Es posible que desee hacer que estos 'volúmenes de archivos' sean de solo lectura :ropara reflejar que son una configuración estática y no algo que se espera que el contenedor cambie o debería poder cambiar.

Alexander Ljungberg
fuente