‫¿Qué pasa con los secretos para el desarrollo local utilizando la línea de comandos Docker Compose? Hemos estado hablando de Swarm
‫hasta ahora.
‫Pero estoy de vuelta en mi máquina y tengo instalado Docker Compose, que no tenía en mi enjambre,
‫¿verdad?
‫Porque, una vez más, Compose no es una herramienta de producción.
‫Está diseñado para el desarrollo.
‫Estoy en el mismo directorio de muestra secreta que teníamos antes.
‫Puede ver que tengo los dos archivos de contraseñas y el archivo Docker Compose que teníamos en el enjambre. que este no es un administrador de enjambres.
‫Solo para demostrar que no
‫estoy en un enjambre, puedo
‫hacer un nodo portador ls, y realmente me dirá
‫No estoy en un enjambre, así que no tengo acceso a la base de datos Swarm o la capacidad de poner secretos en ella.
‫Entonces, ¿cómo lidiamos con esto en el desarrollo local?
‫Idealmente, aún podemos usar el mismo archivo Compose.
‫Todavía podemos usar los mismos objetos como las variables de entorno para postgres.
‫Docker tuvo que idear una forma de hacer que esto funcionara en prueba y desarrollo.
‫Si hacemos un docker componer
‫up -d, y luego hicimos un docker componer exec psql. Entonces, ¿un gato en fuga secreta psql
‫usuario, cómo llegó nuestro secreto allí, ¿verdad?
‫Porque no tenemos la base de datos.
‫Bueno, resulta que hay un poco de magia aquí.
‫Bueno, no es magia. Simplemente se esconde detrás de escena, que lo que
‫está sucediendo con Compose no es seguro, pero funciona.
‫Básicamente vincula montajes en tiempo de ejecución ese archivo real en mi disco duro en el contenedor.
‫Simplemente está haciendo un -v con ese archivo particular en el fondo.
‫De nuevo, esto no es totalmente seguro y se supone que no es así.
‫Es solo una forma de evitar este problema y permitirnos desarrollar con el mismo
‫proceso y la misma información secreta variable de entorno que tendríamos en producción,
‫solo que ahora podemos hacerlo localmente también. Lo cual es genial porque ahora eso significa que podemos desarrollar usando los mismos scripts
‫de lanzamiento y de la misma manera que tenemos variables de entorno en nuestro contenedor como lo haríamos en Swarm.
‫Y eso es lo que realmente queremos.
‫Queremos unir nuestro entorno de producción tanto como sea posible a nivel local.
‫Necesita la última versión de Docker Compose para hacer esto.
‫Creo que solo funciona en Docker Compose 11.
‫Espero que pienses que es genial porque pensé que era un buen
‫compromiso para ellos para permitirnos usar los comandos secretos.
‫Ahora señalaré que esto solo funciona con secretos basados ​​en archivos.
‫No funcionará con lo externo de lo que hablamos.
‫Si miramos el archivo Compose realmente rápido, tendría que usar archivos basados ​​en archivos para mi desarrollo local.
‫o en otro lugar donde los almacene, que son solo usando una contraseña simple para el desarrollo.
‫Tal vez, si usa external en su producción, es posible que tenga que tener un archivo Compose diferente para el desarrollo que
‫tenga el atributo de archivo aquí y especifique ejemplos, archivos ficticios en el mismo directorio