Coder Social home page Coder Social logo

proyectdocker's Introduction

#creamos la imagen docker build -t hello-node .

#comprobamos que esta con: docker images

#ejecutar la imagen en un container y mapear puertos docker run -p 4000:3000 hello-node

docker-compose build

#Esto ara que se vayan copiando los cambios de nuestro entorno de trabajo: volumes: - .:/usr/src/app

#Para acceder a la imagen que hemos creado : docker ps #Con esto sabemos el nombre y lo aplicamos: docker exec -it exampleapp bash

#instalamos nodemon para que se reinicie el servidor cuando cambie el codigo npm i nodemon -D

#y lo ejecutamos en script para que este siempre al tanto "dev": "nodemon src/index.js" #cambiamos el arranque de dockerfile CMD ["npm", "run", "dev"]

Empezamos con la creación del repositorio y su consiguiente clonado en el escritorio:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 005

Y el clonado:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 006

A continuación cogemos el zip enviado por la profesora con los documentos: y los ponemos en nuesto documento donde trabajaremos.

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 007

A partir de aquí empezamos a crear el dockerfile – el Docker-compose:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 008

Donde primeramente hacemos una conexión con la base de datos, para ello hay que implementar el dump:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 009

El cual para crearlo primeramente debemos instalar el mongoosedump en nuestro ordenador. A partir de aquí iniciar con el Docker-compose build y up para que guarde los parámetros en la base de datos:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 010 Aspose Words c75e130a-21e7-4df5-b850-c51009645119 011

Con el ultimo comando nos libramos de hacer el Docker-compose build, puesto que inicia los dos comandos a la vez.

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 012

Como podemos ver en nuestra base de datos de mongo están todos nuestros archivos del dump.

A partir de aquí ya habría que empezar con el backend y el frontend: Hacemos una carpeta para cada uno:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 013

En cada carpeta podríamos poner prácticamente los mismos archivos, excepto por cambiar las routes:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 014

Los documentos de cada uno:

Aquí tenemos la routes del backend:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 015

Y aquí las del frontend:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 016

Voy a mostrar los demás documentos para tenerlos en cuenta pero son los mismos, tanto en backend como en frontend:

Database.js

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 017

Index.js

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 018

Dockerfile-backend donde solo cambia el nombre respecto al de Dockerfile-frontend

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 019

Aquí lo muestro:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 020

Y por ultimo el package.json necesario en las dos carpetas para que funcione:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 021

Continuamos con lo necesario en el Docker-compose.yml además de lo que ya teníamos implementamos los campos para el frontend y el

backend:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 022

Cada uno con sus puertos. Y reiniciamos el container,es decir volvemos a usar el Docker-compose up -d

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 023 Aspose Words c75e130a-21e7-4df5-b850-c51009645119 024

A continuación lo abriremos para cercionarnos de que cada uno esta fucnionando:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 025 Aspose Words c75e130a-21e7-4df5-b850-c51009645119 026

Como podemos ver en cada route sale el mensaje escrito, que podemos observar en capturas anteriores. A continuación modifiando otra vez el docke-compose introducimos el siguiente paso que seria la conexión con el mongo-express:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 027

Con esto implementado volvemos a crear el Docker-compose up-d

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 028

Aquí lo vemos creado y luego el enlace:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 029

Introducimos usuario: admin y contraseña: pass que podemos encontrar en la documentación

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 030 Aspose Words c75e130a-21e7-4df5-b850-c51009645119 031 Aspose Words c75e130a-21e7-4df5-b850-c51009645119 032

Y ahora con todo esto creamos el nginx: Primero creamos el nginx.conf:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 033

Al cual le debe llegar tanto el backend como el frontend.

Modificamos el Docker-compose.yml

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 034

Y le volvemos a dar al comando, anteriormente borrando tod lo creado hasta el momento en imágenes y containers. Y aquí tenemos todo creado en nuestro Docker:

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 035

Y en funcionamiento.

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 036

Aspose Words c75e130a-21e7-4df5-b850-c51009645119 037

Y con esto estaría todo excepto el opcional.

proyectdocker's People

Contributors

sergicasanova avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.