Lab 05

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

GUÍA DE LABORATORIO 05

“Contenedores Microservicios II”


Tecsup

LABORATORIO

Objetivos:

• Crear contenedores
• Ejecutar contenedores

Equipos, Materiales, Programas y Recursos:

· Computadora personal.

Introducción:

En el presente laboratorio se propondrán maneras de implementar contenedores Docker.

Seguridad:

· Ubicar maletines y/o mochilas en el gabinete al final de aula de laboratorio.


· No ingresar con líquidos ni comida al aula de laboratorio.
· Al culminar la sesión de laboratorio, apagar correctamente la computadora.

Procedimiento y Resultados:

El laboratorio será desarrollado en forma individual.

Paso 1: Clonar el proyecto y modificar las dependencias

1. Clonar el proyecto

git clone https://github.com/jfarfantecsup/delivery-node-


mongodb.git app_node
cd app_node

2. Configurar el archivo package.json, agregar


nano package.json

"devDependencies": {
"nodemon": "^1.18.10"
}

Paso 2: Configurar su aplicación para que funcione con contenedores

3. Editar app.js
nano app.js

const port = process.env.PORT || 8080;


...
app.listen(port, function () {
console.log(`Example app listening on ${port}!`);
});

Dpto. de Tecnología Digital Pág. 1


Tecsup

4. Abrir el archivo db.js


nano db.js

---antes ----
const MONGO_USERNAME = 'userdemo';
const MONGO_PASSWORD = 'Tecsup';
const MONGO_HOSTNAME = '127.0.0.1';
const MONGO_PORT = '27017';
const MONGO_DB = 'deliverydb';

---despues ----
const {
MONGO_USERNAME,
MONGO_PASSWORD,
MONGO_HOSTNAME,
MONGO_PORT,
MONGO_DB
} = process.env;

5. Abrir en archivo .env y agregar


nano .env

MONGO_USERNAME=userdemo
MONGO_PASSWORD=Tecsup
MONGO_PORT=27017
MONGO_DB=deliverydb

6. Agregar al archivo .dockerignore


nano .dockerignore

.env

7. Abrir el archivo db.js


nano db.js

const mongoose = require('mongoose');

const {
MONGO_USERNAME,
MONGO_PASSWORD,
MONGO_HOSTNAME,
MONGO_PORT,
MONGO_DB
} = process.env;

const options = {
useNewUrlParser: true,

Dpto. de Tecnología Digital Pág. 2


Tecsup

reconnectTries: Number.MAX_VALUE,
reconnectInterval: 500,
connectTimeoutMS: 10000,
};

const url = `mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@$


{MONGO_HOSTNAME}:${MONGO_PORT}/${MONGO_DB}?authSource=admin`;

mongoose.connect(url, options).then( function() {


console.log('MongoDB is connected');
})
.catch( function(err) {
console.log(err);
});

8. Crear archivo wait-for.sh


*copiar desde URL
https://github.com/eficode/wait-for/blob/master/wait-for

9. Para que sea ejecutable

chmod +x wait-for.sh

10. Abrir el docker-compose.yml

nano docker-compose.yml

version: '3'

services:
nodejs:
build:
context: .
dockerfile: Dockerfile
image: nodejs
container_name: nodejs
restart: unless-stopped
env_file: .env
environment:
- MONGO_USERNAME=$MONGO_USERNAME
- MONGO_PASSWORD=$MONGO_PASSWORD
- MONGO_HOSTNAME=db
- MONGO_PORT=$MONGO_PORT
- MONGO_DB=$MONGO_DB
ports:
- "3000:8080"

Dpto. de Tecnología Digital Pág. 3


Tecsup

volumes:
- .:/home/node/app
- node_modules:/home/node/app/node_modules
networks:
- app-network
command: ./wait-for.sh db:27017 --
/home/node/app/node_modules/.bin/nodemon app.js

db:
image: mongo:4.1.8-xenial
container_name: db
restart: unless-stopped
env_file: .env
environment:
- MONGO_INITDB_ROOT_USERNAME=$MONGO_USERNAME
- MONGO_INITDB_ROOT_PASSWORD=$MONGO_PASSWORD
volumes:
- dbdata:/data/db
networks:
- app-network

networks:
app-network:
driver: bridge

volumes:
dbdata:
node_modules:

11. Instalar docker-compose

sudo apt install docker-compose

12. Ejecutar docker-compose

docker-compose up -d
docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS


PORTS NAMES
25943a4f4c84 mongo:4.1.8-xenial "docker-entrypoint.s…" 33 seconds ago Up 32
seconds 27017/tcp db
c7f565b5d47c nodejs "docker-entrypoint.s…" 33 seconds ago Up 30
seconds 0.0.0.0:3000->8080/tcp nodejs

Dpto. de Tecnología Digital Pág. 4


Tecsup

13. docker-compose down

docker-compose down

Stopping db ... done


Stopping nodejs ... done
Removing db ... done
Removing nodejs ... done
Removing network app_node_app-network

14. Ejecutar

docker-compose up -d

15. Conectarse a mongodb

docker exec -it db mongo --host localhost --port 27017 -u


userdemo -p Tecsup

show dbs

use deliverydb

db.pedidos.find()

16. Ir al navegador
Colocar el ip del servidor y puerto 3000

Dpto. de Tecnología Digital Pág. 5


Tecsup

Dpto. de Tecnología Digital Pág. 6


Tecsup

Dpto. de Tecnología Digital Pág. 7


Tecsup

Conclusiones:

1. …..
2. …..
3. …..

Dpto. de Tecnología Digital Pág. 8

También podría gustarte