1
00:00:05,710 --> 00:00:09,040
Es momento de comenzar nuestro camino en la creación de imágenes.

2
00:00:09,370 --> 00:00:11,260
El proceso de creación de una imagen.

3
00:00:11,260 --> 00:00:16,720
La verdad es que tiene un nombre bien interesante, porque lo que vamos a querer hacer para construir

4
00:00:16,720 --> 00:00:21,970
una imagen es obviamente tener algún código fuente o alguna aplicación que nosotros queremos localizar.

5
00:00:22,150 --> 00:00:22,930
Y que es eso?

6
00:00:22,970 --> 00:00:27,540
Localizar no es más que construir una imagen basado en nuestro código.

7
00:00:27,550 --> 00:00:28,330
Eso es básicamente.

8
00:00:28,330 --> 00:00:31,450
Pero aquí también ustedes tienen varias descripciones que yo les puse en el glosario.

9
00:00:31,930 --> 00:00:36,220
Por ejemplo, realizar una aplicación es el proceso de tomar un código fuente, generar una imagen lista

10
00:00:36,220 --> 00:00:38,170
para montar y correrla en un contenedor.

11
00:00:38,500 --> 00:00:41,800
Para lograr esto ocupamos crear un archivo llamado Docker File.

12
00:00:41,890 --> 00:00:45,910
El Docker file no es más que un archivo de texto con las instrucciones que nosotros le vamos a decir

13
00:00:45,940 --> 00:00:48,340
a Docker para que construya esa imagen.

14
00:00:48,700 --> 00:00:51,740
Se puede ver como un blueprint o un plano para su construcción.

15
00:00:51,760 --> 00:00:58,030
Si ustedes hacen clic aquí, nos lleva a la documentación oficial de Docker para que puedan leer más

16
00:00:58,030 --> 00:00:58,750
al respecto.

17
00:00:59,020 --> 00:01:00,880
Porque este es un tema bastante amplio.

18
00:01:00,880 --> 00:01:06,130
Hay muchas cosas que podemos hacer y esto también tiende a ser algo abrumador para las personas que

19
00:01:06,130 --> 00:01:07,180
ingresan por primera vez.

20
00:01:07,180 --> 00:01:10,480
Y es algo difícil de tratar de comprender todo de un solo.

21
00:01:11,260 --> 00:01:16,630
Es decir, muchas veces las personas lo que hacen es ok, bueno, este es el Docker file, leélo, cámbialo,

22
00:01:16,630 --> 00:01:18,700
modificarlo y uno dice bueno, y esto qué es?

23
00:01:19,090 --> 00:01:25,360
Si nosotros analizamos, por ejemplo, otras imágenes, digamos la de PostgreSQL, no hace falta que

24
00:01:25,360 --> 00:01:28,720
vengan, no hace falta que vengan aquí, solo es una explicación.

25
00:01:29,020 --> 00:01:33,580
Estas son las capas, porque cada paso que ustedes van a ver aquí es una instrucción que vamos a colocar

26
00:01:33,580 --> 00:01:34,480
en el Docker File.

27
00:01:34,960 --> 00:01:40,060
Adicionalmente, cada una de estas estos pasos que estamos viendo aquí, por ejemplo, al añadir un

28
00:01:40,060 --> 00:01:44,950
archivo, un comando bash, luego se ejecuta esta línea y así sucesivamente.

29
00:01:44,950 --> 00:01:48,040
Cada una de esas líneas va creando lo que se conoce como layers.

30
00:01:48,460 --> 00:01:53,440
No sé si ustedes han visto y yo lo había mencionado, que cuando estamos descargando a una imagen lo

31
00:01:53,440 --> 00:01:54,730
que se descargan son layers.

32
00:01:54,760 --> 00:02:00,220
Esos layers van a permitir su reutilización en el caso de que otra imagen usar al mismo layer, entonces

33
00:02:00,220 --> 00:02:03,370
va a permitirnos reutilizarlo y es bastante útil.

34
00:02:03,370 --> 00:02:04,690
Ya vamos a hablar más al respecto.

35
00:02:04,690 --> 00:02:10,180
Pero todos estos pasos van a haber Configuración de variables de entorno, ejecución de un shell, variables

36
00:02:10,180 --> 00:02:16,000
de entorno, definición de un volumen Copiar información de un lado a otro, un entry point, la exposición

37
00:02:16,000 --> 00:02:23,230
del puerto, el comando de ejecución, todo estos, todo esto son una serie de pasos para la creación

38
00:02:23,230 --> 00:02:25,300
y ejecución de esta imagen.

39
00:02:25,570 --> 00:02:31,180
Entonces, yo no pretendo que ustedes el día 0 se memoricen y sepan que hace todo esto, porque eso

40
00:02:31,180 --> 00:02:31,870
no pasa así.

41
00:02:32,380 --> 00:02:36,310
Si es la primera vez que ustedes van a ver un perfil y si alguien les pasó algún docker fail, ustedes

42
00:02:36,310 --> 00:02:39,580
se van a asustar porque van a ver todo ese montón de comandos y no tienen la menor idea que hace.

43
00:02:39,580 --> 00:02:40,080
Qué cosa?

44
00:02:40,090 --> 00:02:40,540
Entonces?

45
00:02:40,900 --> 00:02:46,510
Mi objetivo es que empecemos desde absoluto cero comprendiendo primero cómo funciona una pequeña aplicación

46
00:02:46,510 --> 00:02:48,730
y luego vamos a ir creciendo en complejidad.

47
00:02:48,790 --> 00:02:52,150
Entonces vamos a crear un Docker, un Docker fácil, súper sencillo.

48
00:02:53,220 --> 00:02:57,210
Y en base a ese perfil vamos a ir aprendiendo más y más y más y más y más.

49
00:02:57,210 --> 00:03:00,150
Entonces vamos a empezar de lo más básico y luego vamos creciendo.

50
00:03:00,150 --> 00:03:04,710
Para las personas que ya saben sobre Docker, posiblemente van a sentir esto bastante básico, pero

51
00:03:04,710 --> 00:03:10,740
eventualmente vamos a llegar a hacer inclusive construcciones en múltiples pasos, entre otras cosas,

52
00:03:10,740 --> 00:03:15,390
y después vamos a llegar al punto de crear diferentes imágenes para diferentes arquitecturas.

53
00:03:15,420 --> 00:03:19,950
Entonces yo sé que eso de arquitectura, de procesadores, yo sé que es bastante complicado todo esto,

54
00:03:19,950 --> 00:03:21,720
pero nuevamente vamos a ir caminando.

55
00:03:22,050 --> 00:03:27,330
Lo primero que les voy a pedir es que ocupamos crear una aplicación para que nos sirva para obviamente

56
00:03:27,870 --> 00:03:28,540
hacer algo, no?

57
00:03:28,560 --> 00:03:30,750
Porque voy a crear una imagen y la imagen tiene que hacer algo.

58
00:03:30,810 --> 00:03:32,010
Entonces eso es lo que quiero hacer.

59
00:03:32,280 --> 00:03:36,720
Creemos un archivo en nuestra carpeta de Docker que se va a llamar Cron ticker.

60
00:03:36,940 --> 00:03:38,220
Ya van a ver porque es Chrome.

61
00:03:38,520 --> 00:03:39,080
Por qué Chrome?

62
00:03:39,870 --> 00:03:42,570
Tomen esta carpeta y ábranla en Visual Studio Code.

63
00:03:43,730 --> 00:03:44,300
Y aquí adentro.

64
00:03:44,300 --> 00:03:45,170
Voy a quedarme.

65
00:03:45,350 --> 00:03:48,960
Bueno, todavía no vamos a abrir la terminal también antes de hacer cualquier cosa.

66
00:03:48,980 --> 00:03:52,040
Ahora se la terminal, la de Windows, lo que sea.

67
00:03:52,040 --> 00:03:54,320
Y naveguemos a la carpeta de este proyecto.

68
00:03:55,420 --> 00:03:56,590
Que se llama Crowne Ticker.

69
00:03:56,620 --> 00:03:57,490
Dejémoslo caer aquí.

70
00:03:58,000 --> 00:03:58,480
Enter.

71
00:03:59,020 --> 00:04:02,650
Y recuerden que nosotros tenemos instalado no de manera global en nuestro equipo.

72
00:04:02,650 --> 00:04:07,110
Nosotros lo instalamos en el inicio del curso y se acuerda que yo le dije vamos a usar uno.

73
00:04:07,120 --> 00:04:13,090
No tienen que ser expertos en no necesita saber Node no es un curso de Node, pero obviamente quiero

74
00:04:13,090 --> 00:04:17,470
que usemos esto para crear unas aplicaciones rápidas y sencillas y correr otras cosas.

75
00:04:17,950 --> 00:04:22,030
Entonces tiene que tener instalado Node en su computadora, no como una imagen, se podría ser como

76
00:04:22,030 --> 00:04:23,590
una imagen, pero no quiero hacerlo así.

77
00:04:23,740 --> 00:04:24,010
Ok.

78
00:04:24,490 --> 00:04:28,640
Entonces tengan instalado en Node escriban el siguiente comando npm init.

79
00:04:28,660 --> 00:04:35,980
Obviamente en esta carpeta de crónica no presionen enter y presionen enter enter hasta que cree este

80
00:04:35,980 --> 00:04:37,780
archivo llamado el package JSON.

81
00:04:38,820 --> 00:04:43,950
Si regresamos a el proyecto en el estudio van a ver que aquí ya aparece el paquete JSON con el nombre

82
00:04:43,950 --> 00:04:50,550
de nuestra nuestra aplicación o el nombre del paquete y la configuración básica de nuestra aplicación.

83
00:04:50,790 --> 00:04:52,620
No hicimos nada, todavía no tenemos nada.

84
00:04:53,130 --> 00:04:58,980
Dentro de este archivo voy a crearme una uno nuevo o dentro de escritorio un nuevo archivo llamado App

85
00:04:59,160 --> 00:05:03,620
JS en el cual voy a poner un log que diga Hola mundo, punto y coma.

86
00:05:03,630 --> 00:05:06,780
Grabe los cambios para ejecutar esta aplicación.

87
00:05:06,780 --> 00:05:11,490
Nosotros vamos a irnos a la terminal y escribamos node espacio app.

88
00:05:11,790 --> 00:05:15,270
JS Ok, el js es opcional, pero voy a ponérselo a PPP.

89
00:05:15,450 --> 00:05:18,900
JS Al presionar ENTER se va a ejecutar ese archivo y tenemos nuestro.

90
00:05:18,900 --> 00:05:24,060
Hola mundo, súper sencillo, bastante bastante auto explicado espero.

91
00:05:24,600 --> 00:05:29,490
También nosotros podemos venir aquí en la parte de los scripts, poner una coma al final y escribir

92
00:05:29,490 --> 00:05:30,210
start.

93
00:05:30,600 --> 00:05:34,680
Asegurense ponerlo entre comillas y vamos a mandar a llamar el node espacio app.

94
00:05:34,860 --> 00:05:39,150
JS y graves los cambios con definir este script.

95
00:05:39,150 --> 00:05:44,970
Lo que le estoy diciendo ahora es que mi aplicación va a tener este comando que va a iniciar lo que

96
00:05:44,970 --> 00:05:47,250
es lo que acabo yo de ejecutar, que es app.

97
00:05:47,460 --> 00:05:53,490
Aquí yo después puedo agregar ciertas banderas variables de entorno e x cantidad de cosas que yo puedo

98
00:05:53,490 --> 00:05:55,970
hacer aquí, pero por ahora dejémoslo con el start.

99
00:05:55,980 --> 00:06:01,020
Si yo quiero llamar ese comando, voy a hacer npm de new package manager start.

100
00:06:01,560 --> 00:06:03,990
Esto va a mandar a llamar este script.

101
00:06:04,880 --> 00:06:06,950
Que se llama estar en el cual corre nuestro Hola mundo!

102
00:06:07,520 --> 00:06:09,650
Ok, hasta este momento espero que nadie se esté quedando.

103
00:06:09,920 --> 00:06:14,270
Bastante sencillo, pero obviamente hacer esta aplicación, eso que tenemos aquí es súper aburrido este.

104
00:06:14,300 --> 00:06:15,950
Hola mundo, no quiero hacer eso.

105
00:06:15,950 --> 00:06:20,100
Si les voy a pedir que por favor vayan a material adjunto y yo les dejo.

106
00:06:20,330 --> 00:06:26,900
Es un enlace que los lleva a este paquete que se llama Cron, que es muy similar a como funcionan las

107
00:06:26,900 --> 00:06:31,760
tareas programadas basado en diferentes horas, minutos y segundos.

108
00:06:31,760 --> 00:06:37,130
Es un proceso de Linux en el cual ustedes pueden programar que cada segundo suceda algo, cada minuto

109
00:06:37,130 --> 00:06:40,010
suceda algo, cada hora suceda algo, cada día de la semana suceda algo.

110
00:06:40,010 --> 00:06:43,820
Y esto es muy utilizado para hacer procedimientos, por ejemplo, procesos de sincronización.

111
00:06:43,850 --> 00:06:48,140
Ustedes quieren que cada segundo, cada minuto, cada hora, cada X cantidad de tiempo se ejecute un

112
00:06:48,140 --> 00:06:48,650
proceso.

113
00:06:49,070 --> 00:06:50,660
Esto es muy fácil de utilizar.

114
00:06:50,750 --> 00:06:54,590
Entonces van a ver que aquí hay un comando que dice npm store no crunch.

115
00:06:54,770 --> 00:06:57,050
Hagan clic aquí, lo copian.

116
00:06:57,290 --> 00:07:02,900
Vamos a regresar a nuestra terminal donde tenemos nuestro proyecto y van a pegar ese npm y no crunch

117
00:07:02,930 --> 00:07:04,610
es npm install not chrome.

118
00:07:04,610 --> 00:07:09,230
Presionen enter y esto va a descargar el paquete y lo va a colocar en nuestro proyecto.

119
00:07:09,230 --> 00:07:13,490
Van a notar que ahora aquí en la parte de las dependencias tenemos uno Crom, que es esta versión y

120
00:07:13,490 --> 00:07:18,380
también tenemos este archivo o directorio mejor dicho que se llama los modulos de Node en el cual contiene

121
00:07:18,380 --> 00:07:22,790
todo lo que yo necesito o lo que no creo necesita para poder ejecutarse.

122
00:07:23,730 --> 00:07:25,800
Ok, Voy a regresar a la app.

123
00:07:26,980 --> 00:07:28,750
Y navegador web también.

124
00:07:28,960 --> 00:07:34,150
Les voy a pedir que se copien este pequeño bloque de código que tiene, que es una definición del ejercicio,

125
00:07:34,150 --> 00:07:39,760
copien, lo revisemos a Visual Studio Code y en el app peguen ese código.

126
00:07:40,510 --> 00:07:42,370
Hagamos unas modificaciones.

127
00:07:42,370 --> 00:07:48,000
Aquí voy a escribir inicio aquí coloquen la cantidad de asteriscos que yo le voy a pedir.

128
00:07:48,010 --> 00:07:53,410
Es decir, van a poner 123456 asteriscos.

129
00:07:53,680 --> 00:08:00,880
Cada asterisco significa ya sea el primero, significa segundo minuto, hora del mes, día, el mes

130
00:08:00,880 --> 00:08:03,760
y día de la semana, y ahí pueden ver la definición del mismo.

131
00:08:04,360 --> 00:08:07,510
Yo quiero que esto se ejecute cada segundo.

132
00:08:07,510 --> 00:08:10,210
Entonces podría poner uno -59, por ejemplo.

133
00:08:10,900 --> 00:08:14,290
Y aquí tarea corriendo cada second, por ejemplo.

134
00:08:14,830 --> 00:08:18,550
Voy a grabar los cambios, voy a cambiar este bar por const, porque no debemos de estar usando VAR

135
00:08:18,880 --> 00:08:19,780
y lo dejamos así.

136
00:08:19,780 --> 00:08:20,770
Gánense los cambios.

137
00:08:20,800 --> 00:08:24,580
Ejecutemos nuevamente la aplicación mediante el npm start.

138
00:08:24,580 --> 00:08:29,860
Presione enter, inicia la aplicación y cada segundo va a estar emitiendo este mensaje.

139
00:08:29,890 --> 00:08:31,450
Cada segundo lo está emitiendo.

140
00:08:31,810 --> 00:08:35,560
Y esto es por ahora la aplicación que yo quiero que nosotros tengamos.

141
00:08:35,770 --> 00:08:42,310
Cancelen con control C Para finalizar este ejercicio, o sea para empezar a realizar la aplicación,

142
00:08:42,310 --> 00:08:47,830
yo quiero crearme una bandera que me diga cuántas veces se ha hecho un tick.

143
00:08:47,920 --> 00:08:55,450
Voy a cambiar esto y que diga tick cada cinco segundos y voy a colocar y voy a hacer la impresión aquí

144
00:08:55,450 --> 00:08:58,260
de mis tags la cantidad de veces.

145
00:08:58,270 --> 00:09:04,840
Luego voy a hacer times más, más para ir acumulando cada vez que se llama este proceso y segundos.

146
00:09:06,950 --> 00:09:12,290
Segundos y para que esto se imprima cada cinco segundos, o mejor dicho, que se ejecute cada segundo

147
00:09:12,290 --> 00:09:14,300
cinco, diez, 15 o 20, 25.

148
00:09:14,540 --> 00:09:15,980
Voy a dividir esto entre cinco.

149
00:09:16,640 --> 00:09:19,520
Yo sé que la sintaxis es algo rara, pero esto es propio de Cron.

150
00:09:20,060 --> 00:09:21,040
Gánense los cambios.

151
00:09:21,050 --> 00:09:22,100
Vamos a volverlo a ejecutar.

152
00:09:22,100 --> 00:09:22,880
Flecha de arriba.

153
00:09:22,880 --> 00:09:25,700
Presionamos Enter y esto se va a empezar a ejecutar.

154
00:09:25,700 --> 00:09:31,460
Va a imprimir nuestro mensaje cada segundo cinco cada segundo, diez cada segundo, 15 cada segundo.

155
00:09:31,460 --> 00:09:36,500
20 de el sistema del horario o del reloj del sistema operativo.

156
00:09:36,890 --> 00:09:38,480
Eso es lo que significa lo que estamos haciendo.

157
00:09:38,480 --> 00:09:42,950
No es cada cinco segundos, es en el segundo, cinco, en el segundo, diez en el segundo, 15 segundos.

158
00:09:42,950 --> 00:09:43,280
Twenty.

159
00:09:43,430 --> 00:09:43,910
No importa.

160
00:09:43,910 --> 00:09:45,830
Pero cada cinco segundos, podríamos decirlo.

161
00:09:45,830 --> 00:09:48,490
Tenemos nuestro tic y esta es nuestra aplicación.

162
00:09:48,500 --> 00:09:52,250
Imagino que más de uno va a poder notar algún uso bastante útil para esto.

163
00:09:52,460 --> 00:09:56,090
Por ejemplo, ustedes tienen un proceso que tienen que sincronizar cada cinco segundos o cada hora,

164
00:09:56,090 --> 00:09:58,130
cada minuto, o quieren ejecutar una tarea.

165
00:09:58,130 --> 00:10:05,360
Lo pueden hacer de esa manera y pueden crear tantas entradas de este itinerario como ustedes necesitan.

166
00:10:05,660 --> 00:10:06,820
Por ahora dejémoslo así.

167
00:10:06,830 --> 00:10:11,900
Cancelemos la aplicación con control C y nos vemos en el próximo vídeo donde vamos a empezar a revisar

168
00:10:11,900 --> 00:10:13,250
esta pequeña aplicación.
