‫Esta conferencia tratará de agregar construcción de imágenes a tus archivos de composición para que automáticamente
‫asegure que tienes una imagen lista para
‫usar cuando estás ejecutando comandos de redacción. Al igual que otros profesores en esta sección,
‫realmente necesita tener una buena idea de la funcionalidad de la línea de comandos de Docker container y Docker image.
‫Otra cosa que Compose puede hacer por usted es construir sus imágenes en tiempo de ejecución. Realmente buscará imágenes en el caché, y
‫si tiene opciones de compilación, construirá esa imagen cuando use el comando de subir.
‫No construirá la imagen cada vez.
‫Solo lo construirá si no lo encuentra.
‫Tendrá que usar la compilación de compilación del docker para reconstruir sus imágenes si
‫las cambia, o puede usar el compilador de compilación de docker.
‫Veremos eso en un minuto.
‫Esto es realmente genial para cuando usa Compose localmente y tiene imágenes que desea construir. Quizás no quieras usar el
‫montaje de volumen. En realidad, desea copiar archivos en la imagen o algo así.
‫Tu comando de compilación puede ser bastante complejo. Puede tener algunas variables de entorno personalizadas o
‫argumentos de compilación.
‫Por cierto, construir argumentos, no hemos hablado. entorno que están disponibles solo durante las compilaciones.
‫En realidad, son solo variables de Puedes mirar los documentos. estibador. com documentación sobre Dockerfiles
‫y hablará sobre argumentos de compilación en profundidad.
‫Aquí, vamos a ver un ejemplo de cómo puede usar eso localmente.
‫Estoy en el directorio de muestra de composición 3. Puedes ver aquí aquí tengo un archivo Docker
‫Compose preconstruido.
‫Tengo un Dockerfile llamado nginx. Dockerfile. Luego, una configuración de nginx similar a
‫la que teníamos antes, donde estamos usando Nginx como un proxy inverso para nuestro sitio web.
‫Si entramos en Docker Compose, puede ver cómo he estructurado esta solución.
‫De hecho, tengo dos servicios.
‫Uno es el proxy Nginx como antes, y uno es el servidor web Apache como antes.
‫Pero un par de cosas son diferentes.
‫En lugar de que especifique la imagen predeterminada para Nginx, en realidad estoy creando una personalizada.
‫Aquí puede ver que le he dado algunos argumentos en los que le digo que el
‫archivo Docker que necesita usar es un archivo Docker especialmente nombrado.
‫Quiero que compile ese archivo Docker en este directorio actual. nombre esa imagen cuando
‫la construye, nginx-custom.
‫Quiero que Va a almacenar eso en mi caché local. Luego, abajo, en la parte inferior, tenemos
‫un servidor web que ejecuta Apache.
‫Lo que he hecho aquí es que he montado algunos archivos fuente HTML que tengo en el servidor Apache.
‫Así que el escenario aquí es tal vez soy un
‫desarrollador web, tengo un sitio web estático aquí, debajo
‫de este directorio HTML del que realmente no tengo que preocuparme demasiado.
‫Solo está usando una pequeña plantilla de bootstrap.
‫pero sé que cuando vaya a producción con esto, en realidad estará sentado detrás de un proxy Nginx.
‫Voy a editar eso localmente, en mi editor aquí,
‫Por lo tanto, quiero emular ese entorno de producción tanto como sea posible, localmente, solo para asegurarme de
‫haber eliminado cualquier error o problema. En este caso, quiero este Nginx,
‫y sé que esta configuración de Nginx es la que van a usar en el
‫servidor de producción, por lo que voy a usar eso aquí.
‫Esta es en realidad la misma configuración de Nginx que antes.
‫Cuando ejecuto el comando de compilación de la ventana acoplable, primero voy a verificar el
‫nombre de esta imagen en mi caché. de compilación aquí para buscar Dockerfile y luego crear mi imagen.
‫Si no lo encuentra, entonces usará estos comandos Puedes ver desde este Dockerfile, es bastante simple en realidad.
‫Solo va a usar una versión específica de Nginx y luego solo va a copiar un archivo.
‫Va a obtener el resto de su información de esa configuración de Nginx de Docker Hub y luego
‫va a copiar en mi configuración de Nginx.
‫Si recuerdas en un ejemplo anterior, hicimos un montaje de enlace para obtener esta configuración de Nginx a través de
‫nuestro archivo de composición.
‫En este caso, solo queremos que construya la imagen completa.
‫esta configuración de proxy, así que realmente no necesito montarla para poder cambiarla todo el tiempo.
‫Realmente no necesitamos cambiar
‫Solo quiero que se ejecute. ¿Derecha? Entonces, voy a construirlo. Déjalo reposar en la memoria caché de imágenes. Una vez que se
‫haya construido la primera vez, no será necesario reconstruirlo muy a menudo.
‫Así que solo voy a irme de allí.
‫Luego, cuando edite y desarrolle en mi sitio web, tendré esta
‫configuración para poder editar en vivo. Si volvemos aquí y hago un docker,
‫resuma lo que pasó.
‫Primero creó la red.
‫Eso es algo normal. Eso hace eso.
‫Entonces, realmente se ve que el servicio de proxy no tiene la imagen que está buscando. Así que va a
‫construir eso.
‫Por lo tanto, es extraer el archivo Docker y compilarlo como lo haría con un comando de compilación normal.
‫Entonces me está dando este consejo útil para decirme que construyó la imagen esta vez porque no
‫pudo encontrarla.
‫Pero en el futuro, si necesito cambiar esa imagen, voy a necesitar usar la compilación docker compose
‫o los docker componen los comandos de compilación. puede crear los contenedores.
‫Ahora que tiene la imagen, Entonces está comenzando mi servidor web y mi servidor proxy.
‫Si todo funcionaba correctamente, debería poder obtener un servidor local. Se detuvo mi plantilla predeterminada aquí, que es
‫una plantilla de arranque en realidad.
‫Parece que todo funciona.
‫En realidad, voy aquí y puedo ver todos mis registros por venir y, obviamente, hay muchos activos. Hay una entrada de registro para cada uno
‫y va a pasar por el proxy y a través del servidor web.
‫Debido a que he enlazado ese directorio para editarlo, puedo volver a mi editor. Como desarrollador web, podría ingresar y, quizás,
‫editar algo en el sitio web. este pequeño título arriba aquí.
‫Tal vez entraré en el título de inicio de bootstrap, que debería ser
‫Solo guardaré ese archivo. Luego, si actualizo, mi sitio web se actualiza debido a que se unen de nuevo.
‫Este es un gran ejemplo de una configuración de desarrollador muy común donde necesita construir algunas
‫imágenes personalizadas localmente.
‫También necesita montar algunos archivos en su aplicación para que pueda editarlos en tiempo de ejecución.
‫Y, por supuesto, si esto tenía que ser una aplicación respaldada por una base de datos, simplemente agregaría un tercer
‫servicio aquí para el servidor de la base de datos. Luego, volveré y haré mi limpieza.
‫Notarás que, de manera predeterminada, no eliminará esa imagen.
‫Notarás que aquí arriba, tenemos la costumbre nginx que creó. Pero hay un docker que redacta el comando
‫de abajo.
‫Si miras la ayuda, ves que hay una opción de rmi que realmente elimina las imágenes que puede
‫haber construido o puede estar usando.
‫Esta es la opción actual que dice: "elimine solo imágenes que no tengan una etiqueta personalizada configurada por el campo
‫de imagen". 'Una cosa
‫que podría hacer aquí si quisiera hacer esto un poco más automatizado, es que podría sacar ese comando
‫de imagen allí mismo. Vamos a eliminar eso. Entonces quiero limpiar muy rápido. imagen.
‫Solo voy a eliminar mi docker image rm custom. Como pueden ver, se ha ido allí.
‫Todo bien. Quiero hacer que Docker vuelva a componer.
‫Y esta vez haremos una -d.
‫Notará a lo largo de estos ejemplos de Compose que en realidad nombra contenedores, volúmenes y
‫redes con el nombre del directorio como nombre del proyecto.
‫Eso es realmente algo en Compose donde, para evitar conflictos de nombres, en
‫realidad siempre agregará el nombre del directorio al principio de todos los activos para que no entren en
‫conflicto con otros.
‫En realidad, puede cambiar ese nombre de proxy a través de la línea de comando.
‫Si vas, echa un vistazo a la documentación de redacción.
‫Pero el punto que quería hacer aquí es que si hago una imagen de acoplador aquí, verá que realmente llamó mi
‫imagen por mí.
‫Entonces técnicamente no tengo que usar esa opción de imagen.
‫Pero si quería un nombre específico para poder identificarlo más tarde, podría.
‫La razón por la que lo mencioné es que esto es en realidad un poco más limpio porque
‫lo que puedo hacer entonces es docker, y recordar en la ayuda, dijo que podría usar un tipo de rmi. entorno Docker limpio, puedo hacer lo propio.
‫Entonces, cuando lo limpio, y me gusta mantener mi
‫Lo que hará es eliminar esas imágenes también.
‫Verás aquí abajo en la parte inferior que eliminó la imagen.
‫No es algo que hago todo el tiempo, pero tal vez si tengo un gran proyecto con muchas imágenes
‫personalizadas y no quiero que explote mi sistema cuando no estoy desarrollando ese proyecto, usaré el rmi
‫local , y siempre hará un seguimiento de las imágenes personalizadas que tuvo que crear.
‫realidad eliminará todas las imágenes que se usaron en este proyecto, lo que quizás no desee hacer porque en
‫este caso, podría eliminar el servidor web httpd Apache, y es posible que desee que esa imagen quédate por un tiempo
‫Por supuesto, aquí si uso el todo, en DE ACUERDO.
‫Aprendió mucho sobre Compose en esta sección.
‫Vamos a utilizar Compose durante el resto de este curso.
‫Seguiremos desarrollando estas habilidades sobre la marcha.