Skip to content

Commit 0d6eb17

Browse files
authored
Merge pull request #220 from Lemoncode/feature/add-contenedores-readme
Contenedores - Add lemoncode-challenge README
2 parents 196727d + cfbfeea commit 0d6eb17

File tree

4 files changed

+49
-6
lines changed

4 files changed

+49
-6
lines changed

01-contenedores/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Agenda
44

5-
### Día I: Introducción a Docker (27 de Septiembre de 2021)
5+
### Día I: Introducción a Docker
66

77
#### Teoría
88
- Introducción a Docker y por qué Docker
@@ -63,7 +63,7 @@
6363
#### Deberes
6464

6565

66-
### Día III: Contenerización de aplicaciones (4 de Octubre de 2021)
66+
### Día III: Contenerización de aplicaciones
6767

6868
#### Teoría
6969

@@ -87,7 +87,7 @@
8787
#### Chulera de comandos
8888
#### Deberes
8989

90-
### Día IV: Almacenamiento y monitorización (5 de Octubre de 2021)
90+
### Día IV: Almacenamiento y monitorización
9191

9292
#### Teoría del almacenamiento
9393

@@ -140,7 +140,7 @@
140140
#### Resumen del apartado
141141
#### Chuleta de comandos
142142

143-
### Día V: Networking (18 de Octubre de 2021)
143+
### Día V: Networking
144144

145145
#### Teoría
146146

@@ -172,7 +172,7 @@
172172
#### Chuleta de comandos
173173
#### Ejercicios
174174

175-
### Día VI: Docker Compose y Docker Swarm (19 de Octubre de 2021)
175+
### Día VI: Docker Compose y Docker Swarm
176176

177177
#### Teoría de Docker Compose
178178

@@ -222,4 +222,4 @@
222222
#### Chuleta de comandos
223223
#### Ejercicios
224224

225-
### Laboratorio de Docker (25 de Octubre de 2021)
225+
### Laboratorio de Docker
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Laboratorio Contenedores Docker
2+
3+
## Ejercicio 1
4+
5+
Dockeriza la aplicación dentro de [lemoncode-challenge](./), la cual está compuesta de 3 partes:
6+
7+
- Un front-end con Node.js
8+
- Un backend en .NET (`dotnet-stack`) o en Node.js (`node-stack`) que utiliza un MongoDB para almacenar la información.
9+
- El MongoDB donde se almacena la información en una base de datos.
10+
11+
Nota: como has podido comprobar, el directorio `lemoncode-challenge` tiene dos carpetas: `dotnet-stack` y `node-stack`. En ambos casos el frontend es el mismo, sólo cambia el backend. Usa el stack que prefieras.
12+
13+
### Requisitos del ejercicio
14+
15+
1. Los tres componentes deben estar en una red llamada `lemoncode-challenge`.
16+
2. El backend debe comunicarse con el mongodb a través de esta URL `mongodb://some-mongo:27017`.
17+
3. El front-end debe comunicarse con la api a través de `http://topics-api:5000/api/topics`.
18+
4. El front-end debe estar mapeado con el host para ser accesible a través del puerto 8080.
19+
5. El MongoDB debe almacenar la información que va generando en un volumen, mapeado a la ruta `/data/db`.
20+
6. Este debe de tener una base de datos llamada `TopicstoreDb` con una colección llamada `Topics`. La colección `Topics` debe tener esta estructura:
21+
22+
```json
23+
{
24+
"_id": { "$oid" : "5fa2ca6abe7a379ec4234883" },
25+
"topicName" : "Contenedores"
26+
}
27+
```
28+
29+
¡Añade varios registros!
30+
31+
__Tip para backend__: Antes de intentar contenerizar y llevar a cabo todos los pasos del ejercicio se recomienda intentar ejecutar la aplicación sin hacer cambios en ella. En este caso, lo único que es posible que “no tengamos a mano” es el MongoDB. Por lo que empieza por crear este en Docker, usa un cliente como el que vimos en el primer día de clase (MongoDB Compass) para añadir datos que pueda devolver la API.
32+
33+
![Mongo compass](./images/mongodbcompass.png)
34+
35+
Nota: es más fácil si abres Visual Studio Code desde la carpeta `backend` para hacer las pruebas y las modificaciones que si te abres desde la raíz del repo. Para ejecutar este código solo debes lanzar `dotnet run` si usas el stack de .NET, o `npm install && npm start` si usas el stack de Node.js.
36+
37+
__Tip para frontend__: Para ejecutar el frontend abre esta carpeta en VS Code y ejecuta primero `npm install`. Una vez instaladas las dependencias ya puedes ejecutarla con `npm start`. Debería de abrirse un navegador con lo siguiente:
38+
39+
![Topics](./images/topics.png)
40+
41+
## Ejercicio 2
42+
43+
Ahora que ya tienes la aplicación del ejercicio 1 dockerizada, utiliza Docker Compose para lanzar todas las piezas a través de este. Debes plasmar todo lo necesario para que esta funcione como se espera: la red que utilizan, el volumen que necesita MongoDB, las variables de entorno, el puerto que expone la web y la API. Además debes indicar qué comandos utilizarías para levantar el entorno, pararlo y eliminarlo.
47.8 KB
Loading
9.37 KB
Loading

0 commit comments

Comments
 (0)