Logo Studenta

5 Construir la imagen

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

1
00:00:05,900 --> 00:00:10,460
En la clase anterior nos quedamos con el siguiente código nuestro Docker File.
2
00:00:10,670 --> 00:00:13,760
Estamos tomando esta versión de Linux que ya viene con New preinstalado.
3
00:00:13,770 --> 00:00:20,990
Nos movimos de directorio y copiamos la carpeta el archivo C, también el package punto JSON de nuestra
4
00:00:21,030 --> 00:00:28,370
de nuestro proyecto y lo estamos pegando en el pack relativo a este working directory que sería app
5
00:00:29,330 --> 00:00:29,570
ok.
6
00:00:30,110 --> 00:00:36,620
Esto significaría así como está el código, nosotros copiamos únicamente si quieren esto, si quieren
7
00:00:36,620 --> 00:00:37,250
no lo hagan.
8
00:00:37,370 --> 00:00:38,810
Esto solo es una explicación.
9
00:00:39,620 --> 00:00:45,020
Básicamente el Docker falta poco existiría, pero básicamente esos son los dos archivos que ahora tenemos
10
00:00:45,020 --> 00:00:46,160
dentro de esta carpeta.
11
00:00:46,650 --> 00:00:51,710
Ok, el paquete en el app es lo único que tenemos dentro de la nueva imagen que estamos creando.
12
00:00:52,010 --> 00:00:58,820
Pero se acordarán ustedes que para poder ejecutar esto ocupamos los módulos de Node y cómo reconstruimos
13
00:00:58,820 --> 00:01:02,360
nosotros o como ejecutamos el procedimiento para reconstruir esos modelos de Node?
14
00:01:02,750 --> 00:01:08,660
Bueno, muy fácil, hacíamos un npm, bueno tal vez no lo hemos visto, pero hacemos un npm install.
15
00:01:09,890 --> 00:01:12,320
Esto es algo propio de aplicaciones de node.
16
00:01:12,350 --> 00:01:19,640
Esto le dice no package manager ve al archivo del package punto JSON, mira las dependencias y la dependencia
17
00:01:19,640 --> 00:01:21,410
de desarrollo que todavía no tenemos ninguna.
18
00:01:22,430 --> 00:01:25,910
Mira las dependencias y haz la instalación.
19
00:01:26,360 --> 00:01:31,130
Esto a la vez reconstruye el paquete bug catch, lo que dice, como fue construido y también teníamos
20
00:01:31,130 --> 00:01:33,410
los módulos de nuevo, que ahí están nuestras dependencias.
21
00:01:34,070 --> 00:01:41,060
Entonces este paso tenemos que hacerlo también para que nuestro nuestra imagen ya las tenga de antemano.
22
00:01:41,870 --> 00:01:44,450
Ok, entonces vamos a venir aquí y ejecutamos.
23
00:01:44,450 --> 00:01:51,380
Ocupamos ejecutar este mismo comando npm install para ejecutar un comando hacemos el run seguido del
24
00:01:51,380 --> 00:01:52,700
comando que queremos ejecutar.
25
00:01:52,710 --> 00:01:57,950
En este caso sería npm show nuevamente como que ustedes vinieran a la terminal y hicieran npm install,
26
00:01:58,310 --> 00:02:03,950
y si ustedes quieren ejecutar más comandos pueden poner ant y otro comando npm install otra vez y npm
27
00:02:03,950 --> 00:02:06,590
solo cualquier cantidad que ustedes de comandos necesitan.
28
00:02:07,870 --> 00:02:13,840
Ok, entonces después de ejecutar el run, eso sería instalar las dependencias.
29
00:02:15,270 --> 00:02:19,470
Entonces después de ejecutar este procedimiento y esto va a ir secuencial, primero hace este paso,
30
00:02:19,470 --> 00:02:21,960
luego hace este paso, luego hacia este paso, luego hace este paso.
31
00:02:21,960 --> 00:02:23,220
Y cuando ese paso termina.
32
00:02:23,610 --> 00:02:26,430
Entonces qué otra cosa necesitaríamos o que ya teníamos?
33
00:02:26,430 --> 00:02:29,910
Ya tenemos el módulo de no, ya teníamos el package loop de JSON, ya tenemos todo.
34
00:02:30,450 --> 00:02:33,270
Entonces lo que sigue era qué cosa?
35
00:02:33,270 --> 00:02:34,380
Voy a venir a la terminal.
36
00:02:35,070 --> 00:02:40,710
Podemos hacer el nodo tap, podemos hacerlo de esta manera con una app o bien podemos hacer el npm start.
37
00:02:40,950 --> 00:02:47,090
Cualquiera de esas dos instrucciones funcionarían porque ya tenemos los scripts, tenemos el package
38
00:02:47,090 --> 00:02:49,680
y tenemos instalado cualquiera de los dos va a funcionar.
39
00:02:49,740 --> 00:02:51,180
Entonces, qué es lo que estoy haciendo aquí?
40
00:02:51,480 --> 00:02:52,710
Necesito ejecutar este.
41
00:02:52,710 --> 00:02:53,130
Qué cosa?
42
00:02:53,130 --> 00:02:54,090
Cómo se llama esto?
43
00:02:54,090 --> 00:02:54,670
Se llama.
44
00:02:54,690 --> 00:02:55,980
Se llama un comando.
45
00:02:56,190 --> 00:02:58,760
Ocupo ejecutar este comando o este de aquí?
46
00:02:58,770 --> 00:02:59,810
Cualquiera de esos dos.
47
00:02:59,820 --> 00:03:02,010
Entonces para eso es CMD de comando.
48
00:03:02,010 --> 00:03:03,390
Y luego viene un ejecutable.
49
00:03:04,080 --> 00:03:06,720
Y esto es una serie de instrucciones que ustedes quieren ejecutar.
50
00:03:06,720 --> 00:03:13,230
Usualmente es la última porque le va a decir a la imagen de Docker qué hacer cuando se empiece a correr
51
00:03:13,230 --> 00:03:14,640
el contenedor con esta imagen.
52
00:03:14,940 --> 00:03:18,000
Este es el comando que se va a ejecutar para iniciar mi aplicación.
53
00:03:18,270 --> 00:03:24,000
En este caso le voy a decir Node coma y la segunda línea sería el API JS.
54
00:03:25,330 --> 00:03:26,980
Y esto va a ser el comando.
55
00:03:28,540 --> 00:03:33,250
Este es el comando que se ejecuta cuando se limpia, cuando se hace el run de la aplicación comando
56
00:03:33,260 --> 00:03:34,940
run de la imagen.
57
00:03:34,960 --> 00:03:35,590
Voy a ponerle así.
58
00:03:36,590 --> 00:03:37,310
Nuevamente.
59
00:03:37,310 --> 00:03:39,710
Yo les dejo a ustedes en la hoja de atajos.
60
00:03:41,070 --> 00:03:44,230
Una definición rápida de cada uno de estos pasos.
61
00:03:44,250 --> 00:03:48,990
Vamos a buscar nuestro Docker File from que es la herencia?
62
00:03:49,560 --> 00:03:53,250
Esto ya vamos a ver sobre los multi stage o multi stats.
63
00:03:53,250 --> 00:03:55,140
Mejor dicho, ya vamos a hablar de eso.
64
00:03:55,320 --> 00:04:01,080
Todavía no hemos visto variables de entorno, pero ya vimos el run inicialización npm install working
65
00:04:01,080 --> 00:04:02,820
directory, que es lo que hace cada cosa.
66
00:04:02,820 --> 00:04:07,170
La definición de volúmenes, agregar archivos, copiar archivos.
67
00:04:07,860 --> 00:04:14,940
Luego tenemos por acá copiar todos los archivos y directorios ex post para exponer un puerto y este
68
00:04:14,940 --> 00:04:19,680
es el comando que se va ejecutar cuando se inicie nuestro contenedor, etc, etcétera.
69
00:04:20,850 --> 00:04:22,050
Básicamente esto es una definición.
70
00:04:22,050 --> 00:04:27,090
Todavía no hemos visto otros comandos y hay muchos más que va a depender de lo que ustedes vayan a necesitar.
71
00:04:27,480 --> 00:04:29,730
En fin, ok, vamos a probarlo aquí.
72
00:04:29,730 --> 00:04:30,650
Construir esta imagen.
73
00:04:30,660 --> 00:04:35,070
Ese es el punto más emocionante de todo, porque no esperen que la primera vez todo le salga bien.
74
00:04:35,880 --> 00:04:40,890
Es muy raro que la primera vez que ustedes hacen una construcción todo les salga de mil maravillas.
75
00:04:40,920 --> 00:04:41,280
Ok?
76
00:04:41,310 --> 00:04:45,540
Muchas veces ustedes van a tener errores, van a leer los errores, van a resolver los errores y van
77
00:04:45,540 --> 00:04:47,730
a volver a ser comandos de construcción.
78
00:04:48,240 --> 00:04:50,670
Entonces vamos a regresar a nuestra terminal.
79
00:04:50,700 --> 00:04:51,690
Limpien todo.
80
00:04:51,690 --> 00:04:51,930
Ups!
81
00:04:51,930 --> 00:04:53,190
Cancelen, Cancela, Inicien todo.
82
00:04:53,460 --> 00:04:54,480
Y es importante.
83
00:04:54,480 --> 00:04:59,490
Si ustedes están en Windows y están usando la ventana de comandos, pueden hacer dir.
84
00:04:59,820 --> 00:05:05,460
Y si están en la terminal pueden ser o terminales en Linux o Mac pueden hacer LS y es muy importante
85
00:05:05,460 --> 00:05:12,420
que ustedes estén en la E, en el PAT donde está la aplicación o donde está su archivo del Docker file.
86
00:05:12,450 --> 00:05:17,970
Este Docker file tiene que estar ahí sin especificar el par relativo, pero para que sea más sencillo,
87
00:05:17,970 --> 00:05:20,370
váyanse a la carpeta donde está el Docker field.
88
00:05:21,120 --> 00:05:27,270
Entonces aquí para hacer comando de construcción sería Docker espacio build que es para construir.
89
00:05:27,660 --> 00:05:29,490
Luego le podemos poner un tag.
90
00:05:29,670 --> 00:05:35,670
Puede ser stack si quiere, podemos hacerlo así y luego usamos la forma corta y le voy a poner un nombre
91
00:05:35,670 --> 00:05:37,500
como por ejemplo Cron Ticker.
92
00:05:37,740 --> 00:05:42,540
Si ustedes no le ponen el tag, se puede poner después, pero después puede que ustedes tengan muchas
93
00:05:42,540 --> 00:05:44,160
imágenes y no sepan cuál es cuál.
94
00:05:44,580 --> 00:05:47,700
Entonces pónganle de una vez el tag espacio.
95
00:05:47,700 --> 00:05:53,760
Ya vamos a hablar sobre las etiquetas también, porque este tag solo lo va a nombrar la imagen, pero
96
00:05:53,760 --> 00:05:56,190
no le va a poner la versión o sí?
97
00:05:56,190 --> 00:05:57,390
Es el bueno por defecto.
98
00:05:57,390 --> 00:06:02,040
Si ustedes no lo especifican aquí le pone test, pero olvídense de eso.
99
00:06:02,490 --> 00:06:09,000
Y luego viene un punto, porque este punto, este punto es el relativo a donde se encuentra el Docker
100
00:06:09,000 --> 00:06:09,360
file.
101
00:06:09,510 --> 00:06:14,620
Si ustedes dicen punto, significaría que se encuentra exactamente en el directorio donde nos encontramos.
102
00:06:14,670 --> 00:06:21,120
Si se encontrara dentro de otro directorio sería pat, dir y no sé donde esté el Docker y ahí debería
103
00:06:21,120 --> 00:06:22,350
ser el Docker Walk, por ejemplo.
104
00:06:24,100 --> 00:06:30,220
Pero usualmente se lo van a ver de esta manera, porque más sencillo van a presionar Enter y este procedimiento
105
00:06:30,220 --> 00:06:32,290
va a empezar a crear la imagen.
106
00:06:32,650 --> 00:06:34,780
En este caso lo hace relativamente rápido.
107
00:06:34,780 --> 00:06:40,360
Tenía, ya tenía en caché algo bueno hubiera borrado todo de antemano, pero esto va a empezar a realizar
108
00:06:40,360 --> 00:06:44,200
una serie de procedimientos y van a ver que hay cuatro, uno de cuatro.
109
00:06:44,200 --> 00:06:45,640
Por qué uno de cuatro?
110
00:06:45,880 --> 00:06:46,510
Por qué?
111
00:06:46,960 --> 00:06:48,850
1234.
112
00:06:49,120 --> 00:06:53,170
Y luego teníamos el CMD, pero el cmd todavía no se ejecuta.
113
00:06:53,170 --> 00:06:57,880
Como ustedes ven aquí no se está ejecutando, ese comando se va a ejecutar cuando se monte la imagen
114
00:06:57,880 --> 00:06:58,590
en un contenedor.
115
00:06:58,600 --> 00:06:59,650
Entonces nuevamente.
116
00:07:00,100 --> 00:07:01,420
1234.
117
00:07:01,600 --> 00:07:02,260
Perfecto.
118
00:07:02,440 --> 00:07:04,150
Luego se crea la imagen y ya.
119
00:07:04,150 --> 00:07:05,440
Eso es básicamente todo.
120
00:07:05,440 --> 00:07:10,460
Si es la primera vez que ustedes lo ejecutan, va a demorar un poco en hacerse como.
121
00:07:10,840 --> 00:07:13,810
Es algo relativamente pequeño, pero tiene que crear algo que más o menos va a pesar.
122
00:07:13,810 --> 00:07:19,120
Como 100 megas, una cosa así, flecha direccional arriba y vuelven a ejecutar exactamente el mismo
123
00:07:19,120 --> 00:07:24,550
comando y van a ver que se hace en fracciones de segundo, porque lo único que hace aquí doc es revisar
124
00:07:24,550 --> 00:07:30,820
si hay algún cambio, ya sea que haya cambios en el código fuente o haya cambios en el orden en el cual
125
00:07:30,820 --> 00:07:36,670
ustedes colocaron esta información, o sea los comandos, una buena práctica es que ustedes coloquen
126
00:07:36,670 --> 00:07:38,800
los comandos que menos cambian arriba.
127
00:07:39,250 --> 00:07:43,630
Por ejemplo, si ustedes fueran a exponer algún puerto, lo colocan aquí arriba, porque cada vez que
128
00:07:43,630 --> 00:07:48,250
ustedes cambian, por ejemplo, si ustedes cambiaran este paso, todos los labels después de este o
129
00:07:48,250 --> 00:07:51,430
los subsiguientes a este se van a volver a ejecutar y a crear.
130
00:07:51,550 --> 00:07:56,520
Entonces eso ayuda a que los labels se mantengan en caché y sea más rápida la construcción.
131
00:07:56,530 --> 00:07:57,370
En fin, no importa.
132
00:07:57,850 --> 00:08:04,390
Regresemos a la consola y hagamos un Docker Image ls Y aquí tenemos nuestro cron ticker versión degrees
133
00:08:04,420 --> 00:08:05,020
y un idee.
134
00:08:05,950 --> 00:08:08,200
Corramos Docker container run.
135
00:08:08,440 --> 00:08:12,480
Voy a correr aquí el cron ticker espacio y nada más.
136
00:08:12,490 --> 00:08:20,050
Enter Docker container run con ticker not inicio cinco segundos después o bueno un poco el segundo.
137
00:08:20,050 --> 00:08:20,740
Cinco diez, 15.
138
00:08:20,740 --> 00:08:21,640
Ustedes me entienden?
139
00:08:22,060 --> 00:08:23,460
Va a empezar a ejecutarse.
140
00:08:23,470 --> 00:08:26,470
Procedimiento súper súper genial.
141
00:08:26,840 --> 00:08:31,900
Ok, básicamente ya tenemos nuestra imagen que tiene más de uno se va a asustar por el peso, pero recuerden,
142
00:08:31,900 --> 00:08:35,530
está Linux que están ahí instalado, tenemos las dependencias, tenemos muchas cosas.
143
00:08:35,530 --> 00:08:39,970
Realmente nuestro código es bien ligero, pero tiene todo el sistema operativo.
144
00:08:40,600 --> 00:08:45,070
Ok, todo lo que nosotros ocupamos para correr la aplicación y ahí está para cancelar la presión en
145
00:08:45,070 --> 00:08:49,810
control C Pero si les pasa como a mí que se está quedando pegado esto control C, entonces podríamos
146
00:08:49,810 --> 00:08:59,140
abrir una nueva instancia y terminar Docker container con Container LS y podemos hacer el docker container
147
00:08:59,740 --> 00:09:05,560
para removerlo forzadamente del E 56 ok?
148
00:09:05,920 --> 00:09:07,780
Y eso ya tiene que terminar el proceso también.
149
00:09:07,780 --> 00:09:09,010
Esa es otra forma de hacerlo.
150
00:09:09,010 --> 00:09:15,850
Y señoras y señores, tenemos nuestra primera imagen que lo que hace es realizar este procedimiento
151
00:09:16,720 --> 00:09:19,720
cada segundo cinco, diez, 15 twenty thirty.
152
00:09:19,990 --> 00:09:24,610
Bien interesante, dejémoslo así por ahora y en la siguiente clase hagamos actualizaciones tanto al
153
00:09:24,610 --> 00:09:28,470
código y hagamos alguna actualización aquí en nuestro Docker File.
154
00:09:28,510 --> 00:09:29,230
Qué les parece?
155
00:09:29,320 --> 00:09:30,490
Nos vemos en el siguiente vídeo.

Continuar navegando