Convierte Apps de React en contenedores Docker

  Рет қаралды 12,736

lasfito

lasfito

Күн бұрын

Пікірлер: 92
@tecnolastipas
@tecnolastipas 7 ай бұрын
Exelente explicación, muchas gracias, estoy iniciando con docker y la verdad era el empujón que necesitaba
@lasfito
@lasfito 7 ай бұрын
Gracias, suerte en tu travesía ✌🏼
@juanangelbibolini8891
@juanangelbibolini8891 6 ай бұрын
Pocas veces comento en videos... Hoy se me dio por comentar el tuyo porque sinceramente me fue de gran ayuda tu video. ¡Muchas gracias, lasfito! Nuevo suscriptor
@lasfito
@lasfito 6 ай бұрын
Gracias, Juan Bienvenido ✌🏼
@alexisguanique8464
@alexisguanique8464 2 жыл бұрын
Mejor explicado imposible, suscrito y like! Excelente!
@lasfito
@lasfito 2 жыл бұрын
Gracias, Alexis Un saludo ✌🏼
@FTomaP
@FTomaP 2 жыл бұрын
este tutorial me ayudo a dockerizar mi react proyect, muchas gracias
@lasfito
@lasfito 2 жыл бұрын
Gracias, Diego Me alegra que te haya servido 🤙🏼
@WalterDiaz-od7jc
@WalterDiaz-od7jc Жыл бұрын
Excelentemente explicado! Muchas gracias.
@lasfito
@lasfito Жыл бұрын
Gracias, Walter ✌🏼
@abnermartinez3268
@abnermartinez3268 Жыл бұрын
Gracias por el video, muy bueno para las personas que comenzamos usar a docker, algo que me hubiera gustado ver es poder configurar el entorno, para que docker sepa que archivo .env debe leer para poder ejecutar la aplicacion
@lasfito
@lasfito Жыл бұрын
Usualmente se hace un contenedor por entorno, por lo que no es necesario el .env con valores múltiples.
@racastillo
@racastillo 10 ай бұрын
Excelente contenido y bien explicado, gracias!
@lasfito
@lasfito 10 ай бұрын
Gracias ✌🏼
@SonGoku-pc7jl
@SonGoku-pc7jl 2 жыл бұрын
lo aprendí pero estuve tiempo sin utilizarlo y ha sido un repaso genial! Muchas gracias!
@lasfito
@lasfito 2 жыл бұрын
Gracias, Espero que te haya refrescado la memoria 🤙🏼
@hortmanjoj
@hortmanjoj 2 жыл бұрын
gracias hermano, me ayudaste a dockerizar una aplicacion de mi trabajo, nuevo seguidor aca !! saludos.
@lasfito
@lasfito 2 жыл бұрын
Gracias, Jonathan Me alegra que te haya servido ✌🏼
@davidgallego1216
@davidgallego1216 Жыл бұрын
Excelente explicación.
@lasfito
@lasfito Жыл бұрын
Gracias, David Un saludo
@yvysunu
@yvysunu Жыл бұрын
Mejor explicado imposible, muchas gracias! Estaría bueno (ya que estamos, jeje) uno explicando cómo configurar GitHub actions para generar las imágenes y desplegarlas en algún proveedor en la nube
@lasfito
@lasfito Жыл бұрын
La forma más sencilla para eso es usar GCP Cloud Run. En este video reviso los pasos: kzbin.info/www/bejne/foLXoaF5gLB_bsk Saludos 🤙🏼
@yvysunu
@yvysunu Жыл бұрын
@@lasfito Muchas gracias! Lo reviso ahora
@coordinadordepartamentalde3990
@coordinadordepartamentalde3990 9 ай бұрын
Excelente tutorial conciso. Te deseo preguntar algo, en esta parte: docker run -d -p 3000:3000 miuser/miapp debe ser siempre 3000:3000, la duda es debido que tenga una aplicacion que corre por el puerto 2000, pero cuando puse docker run -d -p 2000:3000 miuser/miapp no me funciono, por lo que en el codigo debi cambiar el puerto al 3000 y alli funciono.
@lasfito
@lasfito 5 ай бұрын
No es siempre 3000:3000. Varía en función del puerto de la app y los valores que configures en la imagen. El comando refleja esa relación (puerto contenedor, puerto app)
@thekillercraft1000
@thekillercraft1000 Жыл бұрын
Hola, LastFito genial video. Una pregunta, y si tengo un monorepo con dos aplicaciones mobiles y una app web en next, debo hacer un solo container o uno por cada uno, tambien tengo la base de datos en postgresql
@lasfito
@lasfito Жыл бұрын
Al momento de crear la imagen debes indicar el path correcto para llegar al codigo de next. Esa sería la única diferencia
@SanchayanPackiyanathan
@SanchayanPackiyanathan 2 жыл бұрын
Gracias Amigo!!! super contenido !
@lasfito
@lasfito 2 жыл бұрын
Gracias, espero que te haya servido 🤙🏼
@ANCEFCA
@ANCEFCA Жыл бұрын
Hola muy bueno el video, quiero subir mi proyecto de react a un servidor compartido y en back utikizo java spring boot que. Me recomiendas
@lasfito
@lasfito Жыл бұрын
Por qué un servidor compartido? Si no es muy compleja la app utiliza algún servicio gratuito como Vercel/Netlify
@ANCEFCA
@ANCEFCA Жыл бұрын
Hola gracias por responder ya tengo una cuenta de hosting compartido. Estamos en producción el prpblema que se deploya desde github yno funciona. Debere entonces utilizar doker ? Tengo mas años en desarrrollo tradicional que en estas nuevas practicas de framework. El proyecto es un marketplace empezamos desde algo simple
@lasfito
@lasfito Жыл бұрын
@ANCEFCA no es necesario docker para aplicaciones de react. Si no se despliega correctamente es cuestión de revisar los registros para dar con el problema. Cual servicio de hosting es?
@ANCEFCA
@ANCEFCA Жыл бұрын
Donweb una cuenta de un plan rressseller
@ANCEFCA
@ANCEFCA Жыл бұрын
Es linux la platafprma del servidor
@diegowagner9486
@diegowagner9486 2 жыл бұрын
Muy bueno! se agradece
@lasfito
@lasfito 2 жыл бұрын
Gracias, Diego 🤙🏼
@osdevelopld7644
@osdevelopld7644 Жыл бұрын
pregunta antes de empezar a meter las manos, usaste create react app, funciona igual con npm create vite?
@lasfito
@lasfito Жыл бұрын
Usé ambos, bro. Mete las manos full 🤙🏼
@diegounanue
@diegounanue Жыл бұрын
No entiendo porque tienes que poner el run build y tambien correr CMD npm run. Y dijiste que era para produccion como lo llevo a produccion? Gracias!!
@lasfito
@lasfito Жыл бұрын
Ejecutas run build para que la imagen tenga la versión de prod y luego ejecutas npm run build para correr dicho código. Para "llevarlo a producción" necesitas desplegar el contenedor en algún servicio de hospedaje/despliegue. Por ejemplo Railway, Heroku, AWS, GCP, etc.
@diegounanue
@diegounanue Жыл бұрын
@@lasfito genial re clara tu respuesta, ahora si lo pongo en producción, el que se llama en react es el index.html, no entiendo como lo haría, si me haria falta ahi el CMD, como indicarle cual es el punto de entrada, tienes algun ejemplo?
@lasfito
@lasfito Жыл бұрын
A qué te refieres con punto de entrada?
@diegounanue
@diegounanue Жыл бұрын
@@lasfito claro perdon por mi ignorancia lo que yo hacia era poner el build, que tiene los js y css y el html en un contenedor de aws. Pero nunca deploye una app fuera de eso. Por eso estoy medio perdido, no entiendo para que necesitamos hacer el build si el comando CMD [npm, start], ya corre la app en el localhost del contenedor. Espero se entienda.
@pablobaskes3100
@pablobaskes3100 Жыл бұрын
Muy bien explicado pero el like te lo llevas por la bromita de Albert Einstein y el meme posterior xdddd
@lasfito
@lasfito Жыл бұрын
Gracias, Pablo Atte. El mismísimo Albert Einstein
@kaelt75
@kaelt75 2 жыл бұрын
Excelente video y explicación, sin embargo me saltan algunas dudas respecto a como se ejecuta el proyecto de React. Porque "npm run start" es para correrlo en modo *Desarrollo* por lo que no sería necesario ejecutar "npm run build" antes. Ahora si yo quiero que corra en modo *Producción*, debería ejecutar el comando "npm run build" y usar algun tipo de proxy-server que carga y sirva los nuevos archivos compilados y generados dentro de la carpeta *build*, ¿no? Jejeje, lo explicaste pero ¿me perdí alguna parte, o como podría esto funcionar?, ¿se podrían tener dos configuraciones diferentes una para desarrollo y otra para producción? 🤯🤔
@lasfito
@lasfito 2 жыл бұрын
Hola, Jeisson Buena observación. Ya en otro comentario había respondido que ejecutar npm start dependerá de la config de tu proyecto. Con CRA npm start te corre desarrollo, mientras que con Vite te corre la build. Al final del día, el Dockerfile es la receta exacta para tu código, así que no hay una imagen general que sirva para todos los casos. Si quieres que corra en modo producción, tal como menciono en el video, basta crear la build e iniciarla. Recuerda que cada contenedor es un mini servidor/computadora, así que no hace falta preocuparse por algún proxy. Sobre tener dos configuraciones, no te recomendaría “desarrollar” desde un contenedor, su propósito general es el despliegue. Si aún así quieres intentarlo, para que tus cambios se guarden en local y no en el contenedor, necesitarás asignar una montura (similar a un volumen), pero eso es más complicado. Saludos ✌🏼
@KromedesShooter
@KromedesShooter 2 жыл бұрын
Muy bueno el video, solo tengo una pregunta. Cuando creas la build de la aplicacion con "$ npm run build", si luego corres "$ npm start" en el container, me parece q lo q estas haciendo no es correr la build de la app, si no que seguis corriendo la development build q serviria para el desarrollo. No deberiamos correr la build en un caso de produccion real ya q esta mas optimizada?
@lasfito
@lasfito 2 жыл бұрын
Va a depender de los scripts y de la aplicación. En algunos casos *start* te ejecuta el bundle de desarrollo y para correr la build necesitas ejecutar algún otro script como *serve*. En algunos casos *start* te ejecuta la build final y necesitas otro comando como *dev* para correr el desarrollo. La respuesta estará en el package.json jaja
@KromedesShooter
@KromedesShooter 2 жыл бұрын
@@lasfito claro claro, entiendo. Yo estaba teniendo en cuenta los scripts por defecto de create-react-app. Gracias por contestar, buen video saludos!!!
@rayito845
@rayito845 2 жыл бұрын
Excelente, Sirve para Node / Express ?
@lasfito
@lasfito 2 жыл бұрын
Sí, tan solo hace falta adecuar los comandos de arranque ✌🏼
@kevinmc24
@kevinmc24 Жыл бұрын
super basico pero bueno ahora uno en enterno de aws y con variables de entorno para consumo de apis en enternos de dev producción y qa
@lasfito
@lasfito Жыл бұрын
El único paso extra es la declaración de las variables en el file. De ahí en fuera tan solo es la inyección según el entorno. Pero valdría la pena hacer un video de igual manera.
@mauriciocruzlopez4526
@mauriciocruzlopez4526 Жыл бұрын
Una pregunta, hice paso a paso todo como en el video pero cuando modifico los archivos por ejemplo del src estos cambios no se ven reflejados en la web. Como lo puedo solucionar.
@lasfito
@lasfito Жыл бұрын
Cada vez que modifiques el código debes crear una nueva imagen. Si quieres usar contenedores para desarrollo, echa un vistazo a los “mounts”.
@mauriciocruzlopez4526
@mauriciocruzlopez4526 Жыл бұрын
@@lasfito hice esto: #Dockerfile FROM node:14.15.4-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . CMD ["npm", "start"] #docker-compose version: "3.8" services: client: stdin_open: true build: context: . dockerfile: Dockerfile.dev ports: - "3000:3000" volumes: - './:/app' - '/app/node_modules' tty: true aunque me funciona lo de volumen , es decir me fijo en el contenedor y veo que se aplican los cambios pero me pasa lo mismo. No hay otra de tener que crear una imagen nueva cada vez que haga un cambio en el código?
@lasfito
@lasfito 11 ай бұрын
Para los volúmenes y monturas no soy muy hábil xd Así que te fallo :v
@darkosa15
@darkosa15 Жыл бұрын
Porque copias el archivo packege.json y luego copias todo? no es repetir? (entendi la explicasion de la carpeta de node moudeles, pero con el packege.json no seria los mismo siempre?)
@lasfito
@lasfito Жыл бұрын
Es porque cada instrucción es una capa para la creación de imágenes. Docker guarda en caché cada capa y al momento de crear una imagen revisa si la capa en cuestión existe previamente. De existir, la reutiliza; caso contrario, la crea. Al tener una capa para package.json y otra capa para el código, nos permite poder crear imágenes más rápido al modificar el código (si es que no modificamos package.json).
@ep4r4
@ep4r4 11 ай бұрын
Lasfito lo que nadie dice es que si hay que hacer una modificación en la aplicación que has creado como puedes hacerle y luego re-subirla. Ej: imaginas que le haces llegar la imagen a otro compañero y este tiene que si por si hacer modificaciones en ella para luego ponerla a la orden de otro desarrollador, como se puede, he estado investigando y es todo un dolor de culo, mas que lo he intentado y nada que puedo.
@lasfito
@lasfito 11 ай бұрын
Para eso se utilizan repositorios remotos y procesos de automatización. La fuente de la imagen debe ser siempre el repositorio. Para organizarte entre compañeros se utilizan las distintas ramas y procesos de desarrollo. Para generar imágenes de docker, puedes utilizar servicios como github, gcp, aws, etc.
@I5R43LL0P3Z
@I5R43LL0P3Z 2 жыл бұрын
Me podrias ayudar a configurar el yml, para ver como seria el codigo
@lasfito
@lasfito 2 жыл бұрын
Hola, Isra ¿Cuál YAML?
@I5R43LL0P3Z
@I5R43LL0P3Z 2 жыл бұрын
@@lasfito si para correr el contenedor se que es: docker run -it -p 3000:3000 -d , pero si quiera construir el docker-compose.yml con mis configuraciones propias, sabes como iria dicho archivo?, por cierto muy bueno tu video.
@lasfito
@lasfito 2 жыл бұрын
Como todo buen Dev, debo decir "depende" jaja. Dependerá de otros servicios quieras agregar al compose y de cómo se relacionen estos con tu app. También dependerá de si quieres construir la imagen con cada compose-up o si quieres usar una imagen previa, si necesitas variables de entorno, si necesitas cierto orden de construcción (en caso de tener una base de datos, por ejemplo), de si necesitas un volumen para la app, etc. En lo personal intento mantener las apps stateless para no complicar los procesos. Un ejemplo que podría darte de rápido (que no necesariamente funciona para React) es: services: app: environment: - variable=true build: dockerfile: Dockerfile context: ./app volumes: - /app/node_modules - ./client:/app
@silviasandoval5068
@silviasandoval5068 2 жыл бұрын
Lasfito porque tengo este error al intentar levantarlo /bin/sh: 1: [npm,: not found ?
@lasfito
@lasfito 2 жыл бұрын
Significa que en la imagen que creaste no tienes instalado npm
@Deus-lo-Vuilt
@Deus-lo-Vuilt 2 жыл бұрын
buen contenido
@lasfito
@lasfito 2 жыл бұрын
Gracias ✌🏼
@Deus-lo-Vuilt
@Deus-lo-Vuilt 2 жыл бұрын
@@lasfito haras mas videos con react ?
@lasfito
@lasfito 2 жыл бұрын
@@Deus-lo-Vuilt Sí, quizá el martes publique otro más. React, Firebase y algoritmos/consejos es más o menos el contenido que quiero crear en el canal.
@Deus-lo-Vuilt
@Deus-lo-Vuilt 2 жыл бұрын
@@lasfito Buenisimo , todo lo que sea proyectos con react , vite , react firebase etc me apunto ajaja un saludo
@lasfito
@lasfito 2 жыл бұрын
Genial, espero que te sirvan ✌🏼
@rjcdz06
@rjcdz06 2 жыл бұрын
@lasfito
@lasfito 2 жыл бұрын
Gracias, Raúl Espero que te haya servido ✌🏼
@hernanarica6389
@hernanarica6389 2 жыл бұрын
no me funciona con vite, si bien me crea bien imagen y contenedor, cuando abro localhost:3000 no me sale nada, ya cambie el puerto de vite a 3000 y en local abre bien
@lasfito
@lasfito 2 жыл бұрын
Hola, Hernán Cuando dices que en local abre bien te refieres a correr el código en lugar del contenedor, ¿cierto? ¿Con qué comando estas corriendo el contenedor?
@AlexanderUrquijo
@AlexanderUrquijo 2 жыл бұрын
creo que en local para que corra "bien" es porque en local con vite por ejemplo ejecutaras el yarn run dev esta sentencia es la que despliega la app en local y seguramente en el dockerfile estas poniendo el "RUN yarn build" es el que te esta dando problema, no?
@lasfito
@lasfito 2 жыл бұрын
@@AlexanderUrquijo Sí, resta que nos cuente qué comando está usando.
@hernanarica6389
@hernanarica6389 Жыл бұрын
falto algo muy importante, enlasar los directorios, el de docker con el local para que los cambios se vean reflejados
@lasfito
@lasfito Жыл бұрын
Sí es una opción si quieres ir probando el desarrollo directamente en el contenedor.
@IvanVelazquez102
@IvanVelazquez102 2 жыл бұрын
Tengo una duda porfavor, no me funciona el puerto 3000 y nose porque, ayuda :(
@lasfito
@lasfito 2 жыл бұрын
Hola, Iván ¿Algún detalle sobre el error? ¿Pasaste el puerto en el comando de docker?
@IvanVelazquez102
@IvanVelazquez102 2 жыл бұрын
@@lasfito Ya lo solucione, muchas gracias por el tuto muy util
@jheandaza7334
@jheandaza7334 Жыл бұрын
Y si mi App tiene bases de datos?
@lasfito
@lasfito Жыл бұрын
No es necesario alguna modificación porque las credenciales suelen ser ingresadas en variables de entorno. Qué BD utilizas?
@irrefl1672
@irrefl1672 10 ай бұрын
Loco y como harias para tener 3 enviroments?
@lasfito
@lasfito 10 ай бұрын
En la imagen puedes meter variables y los entornos los gestionas desde tu plataforma. También puedes usar ramas distintas en tu repo para la gestión de entornos.
The intro to Docker I wish I had when I started
18:27
typecraft
Рет қаралды 312 М.
Docker & Nodejs. Aplicación de Nodejs en Docker Container
25:02
Docker Для Начинающих за 1 Час | Docker с Нуля
52:43
Despliega Directus CMS en 20 min con GCP
37:08
lasfito
Рет қаралды 1,7 М.
Dioxus vs Leptos  | Rust GUI Wars #2
21:18
Creative Coders
Рет қаралды 10 М.
How to Dockerize a MERN App | Docker Compose
44:00
Nikita Dev
Рет қаралды 5 М.
Everything You NEED to Know about Docker
18:26
ForrestKnight
Рет қаралды 36 М.
Build app using React JS, .NET Core Web API and Microsoft SQL Server
29:49
Dockerize and Deploy React JS App in 15 Minutes 🔥🔥
17:56
RoadsideCoder
Рет қаралды 63 М.
Do NOT Learn Kubernetes Without Knowing These Concepts...
13:01
Travis Media
Рет қаралды 333 М.