‫Todo bien. Estas son las respuestas para la tarea de crear nuestro primer Dockerfile. Si estoy en la
‫raíz de nuestro repositorio, que descargó desde el comienzo de este
‫curso, deberíamos poder ir a la asignación dockerfile 1. Si miramos allí, solo tengo un archivo que
‫realmente me importa, y ese es el archivo Docker.
‫Presumiblemente, esta es una fuente que alguien me dio, y ellos son desarrolladores de aplicaciones que usan Nodo. js, y realmente no sé mucho al respecto,
‫así que solo voy a editar el archivo Docker.
‫DE ACUERDO.
‫que lo primero que debo hacer es ir a buscar mi imagen FROM.
‫Si sigo las instrucciones del desarrollador, sé Y sé que necesito usar el nodo oficial. Déjame ir a buscarlo.
‫Derecha. Está el nodo oficial.
‫Necesito la versión 6 ejecutándose en Alpine. Entonces, hay 6 Alpine. Necesito exponer el
‫Todo bien. Entonces, 6-alpine. Estoy exponiendo 3000 aquí porque eso es lo que la aplicación está diseñada para ejecutarse.
‫De acuerdo. La siguiente cosa. puerto 3000. Pero cuando lo ejecuto más tarde con Docker Run, necesito recordar que voy
‫a tener que usar el -p con el puerto 80 yendo al puerto 3000.
‫Todo bien.
‫un administrador de paquetes para instalar esta aplicación, tini.
‫Este necesita usar Usaré un comando de ejecución para eso.
‫Luego voy a hacer un directorio. ejecuta apk add,
‫Todo bien. y luego
‫Haré que se separen los comandos de ejecución. ejecuta mkdir. DE ACUERDO. Entonces necesito copiarlo en un solo archivo.
‫Por lo tanto, también podría cambiar el directorio de trabajo a ese directorio que acabamos de crear.
‫Así que la aplicación de fuente de usuario WORKDIR. Eso me ahorrará tiempo más tarde.
‫Puedo hacer un paquete
‫COPY json package json. Todo bien. Entonces necesito ejecutar un comando de instalación. Parece que será una carrera. para limpiar.
‫Este dice ejecutar otro comando
‫Todo bien.
‫Bueno, generalmente cuando ejecuta un comando de limpieza, desea que ejecute la misma línea o la misma línea
‫de ejecución que la instalación real.
‫De esta forma, elimina todo al mismo tiempo y solo obtiene una capa de imagen.
‫Esto es mejor para el espacio de la imagen.
‫Entonces, voy a agregarlo aquí.
‫Y lo que el doble y el signo, o el ampersand como se llama, lo hace aquí es en realidad es un condicional.
‫Dice a la línea de comando en Linux que dice, 'Oye, si has hecho
‫el primero y es exitoso, haz el segundo comando. "También puede ver a la gente a veces
‫poniendo punto y coma, y ​​eso está bien también".
‫La diferencia es que un punto y coma no depende de si el primer comando fue exitoso o no.
‫Simplemente ejecuta el segundo independientemente.
‫Entonces me gusta el doble ampersand.
‫Todo bien. Esa es una manera
‫Copiando más archivos parece. Si voy a copiar todo, solo haré a. fácil de hacerlo. Asegúrate de que haya un espacio en el medio.
‫Eso es básicamente decir, 'Copiar todo desde mi directorio actual
‫en el host hasta el directorio de trabajo actual en la imagen. ' OKAY.
‫
‫Estoy a la última.
‫Y este se ve un poco complicado.
‫Tengo cuatro partes diferentes del comando que necesito ejecutar allí.
‫Entonces con este formato, necesito ejecutar tini, luego una coma.
‫Entonces esto está en formato JSON.
‫Esta estrofa de comando particular. -, nodo bin www.
‫Y si tuviera curiosidad acerca de eso, siempre podría
‫ir a mi navegador y hacer docker run o docker build cmd.
‫Y apuesto a que la referencia de Dockerfile. Y aquí en
‫esta página, podría ir al cmd. Y habla sobre la forma exacta. Si lees aquí, realmente notarás que hay algo llamado forma
‫de caparazón. Y también hay
‫algo que están mencionando sobre un punto de entrada.
‫Vamos a hablar sobre eso más adelante en el curso en una sección más avanzada de Dockerfile.
‫Pero por ahora, esto es bueno.
‫Tratemos de construirlo. construcción docker. Realmente no me importa cómo lo llamo ahora.
‫Solo estoy tratando de probar la compilación y generalmente mis compilaciones no funcionan la primera vez. Entonces, solo voy
‫a llamarlo testnode. Voy a construir este directorio.
‫DE ACUERDO.
‫Parece que está construido correctamente.
‫Veamos si puedes ejecutarlo.
‫de haberlo probado, así que solo voy a hacer eso.
‫Voy a hacer un - rm porque realmente no me importa guardarlo después
‫No voy a necesitar nombrarlo.
‫Necesito poner un puerto para abrir el puerto. Quiere ejecutarse en 80 pero escucha en 3000. DE ACUERDO.
‫Ese es en realidad un mensaje normal que recibimos de tini, dentro
‫de Alpine, así que no me preocuparé demasiado por eso.
‫Veamos si funciona.
‫Dulce. Veremos los registros allí.
‫DE ACUERDO.
‫Parece que es. gracias, Capitán Picard.
‫Aprecio los aplausos.
‫Aprecio el apoyo.
‫Gracias.
‫Todo bien.
‫Controla C fuera de allí. Ahora, debería estar en la
‫parte superior de mi lista de imágenes.
‫Necesito cambiarle el nombre antes de ponerlo en Docker Hub.
‫Entonces, etiqueta de Docker, y creo que el formato es el viejo y el nuevo. Sí.
‫Por lo tanto, docker etiqueta testnode.
‫Voy a llamarlo nodo de
‫prueba de bretfisher.
‫Y lo dejaré a más tardar.
‫Entonces, docker push, y esto. Todo lo que tenemos que preocuparnos es el nombre. Entonces, docker push
‫bretfisher prueba el nodo.
‫Todo bien. Pasemos a Docker y miremos.
‫Ahí vamos, probando el nodo.
‫DE ACUERDO.
‫Voy a borrar la pantalla y la imagen del acoplador ls.
‫Y, está ahí. Voy a eliminarlo,
‫docker image rm bretfisher testing.
‫Todo bien. Ahora voy a ejecutarlo, el contenedor acoplador ejecuta --rm -p 80 3000
‫igual que antes.
‫Entonces en realidad voy a llamarlo nodo de prueba de bretfisher.
‫Eso debería descargarlo y ejecutarlo.
‫Todo bien.
‫Si vuelvo sobre mi navegador, localhost, allí está. Puedo presionar actualizar solo para estar seguro.
‫Sí. Guay.
‫