Antes le tenia miedo a Docker porque no entendí como era que funcionaba, hoy me siento enamorado de esta herramienta … Gracias totales ♥
Introducción
Python en tu propio entorno de desarrollo local
Instalación en Windows (WSL) y Linux
Instalación en Mac
Python con VSCode
Python con Git y GitHub
Flujo de trabajo en Python
PIP y Entornos Virtuales
¿Qué es pip?
Gráficas en Python con PIP
¿Qué es un ambiente virtual?
Usando entornos virtuales en Python
requirements.txt
Práctica
Solicitudes HTTP con Requests
Pandas
Python para Backend: web server con FastAPI
Python en contenedores de Docker
¿Qué es Docker?
Instalación de Docker
Dockerizando scripts de Python
Docker para el día a día: automatizando la vinculación de archivos
Dockerizando web services
Próximos pasos
¿Cómo continuar tu carrera profesional con Python?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 19
Preguntas 4
Antes le tenia miedo a Docker porque no entendí como era que funcionaba, hoy me siento enamorado de esta herramienta … Gracias totales ♥
Docker es una maravilla, excelente módulo de este curso acerca de docker.
En mi caso me salio el siguiente error:
Error response from daemon: driver failed programming external connectivity on endpoint web-server-web-server-: Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use
Tenia otro servidor activo en el puerto 80
, asi que para solucionarlo utilice el puerto 8080
de mi local. En el docker-compose.yml
quedo:
services:
web-server:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/app
ports:
- '8080:80'
Para ver los resultados en el navegador fui a la direccion:
localhost:8080
localhost:8080/contact
Lo dejo por si le sirve a alguien 😄
Compañeros, les dejo como ejemplo mi repo, donde dockerize Jupyter Lab. Esto fue pensado para poder desplejar un servidor de Jupyter en algún servidor remoto, y tener un servicio personal y privado tipo Google Colab.
Personalmente lo tengo corriendo en una Raspberry Pi.
Les recomiendo que vean los archivos Dockerfile y el docker-compose.yml, y verán que no es tan diferente al presentado en clase 😄 Ojalá les sirva.
https://github.com/alexini-mv/docker-jupyterlab
Me encanta la tecnica legendaria de copiar y pegar jajaja
Agrega los siguientes archivos en el proyecto web services
Archivo Dockerfile
FROM python:3.10
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
COPY . /app
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
Archivo docker-compose.yml
services:
web-server:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/app
ports:
- '80:80'
luego, ir a la terminal y construir el contenedor con el siguiente comando
docker-compose build
docker-compose up -d
docker-compose ps
Finalmente, abrimos localhost en Google y verificamos que arroje lo que esperamos.
pase de junior a >>> senior en 6 minutos.!!! con esta clase.!! 🤣🤣🤣 la mejor clase gracias profe gracias platzi por existir .!!!
Uvicorn es un servidor ASGI de alto rendimiento que usaremos para correr nuestra aplicación, si queréis más info acerca de esta librería os dejo en enlace a su página pinchando aquí.
¿Qué es un ASGI?
https://asgi.readthedocs.io/en/latest/
ASGI (Asynchronous Server Gateway Interface) is a spiritual successor to WSGI, intended to provide a standard interface between async-capable Python web servers, frameworks, and applications.
Where WSGI provided a standard for synchronous Python apps, ASGI provides one for both asynchronous and synchronous apps, with a WSGI backwards-compatibility implementation and multiple servers and application frameworks.
Por si les arroja algun problema copien y peguen este codigo en el docker-compose.yml
services:
web-server:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:app/
ports:
- “80:80”
A que se debe este problema? services.web-server.build Additional property contex is not allowed
😦
si se usan contenedores docker seria innecesario el tema de los entornos virtuales verdad?
Muy buena sección de Docker, para ayudarnos a perder el miedo, Docker no es la gran cosa en dificultad, pero sí que es útil.
Este curso fue buenísimo! Todo me funcionó y entendí un montón de cosas! Si siguen la triada de python no hay fallo!
Esta parte estuvo chévere, para separar los proyectos
Increible. No conocia esta herramienta. Muy potente!
Lo que no he podido hacer es recrearlo con conda.
Dockerfile
FROM python:3.10
WORKDIR /app
COPY requirementes.txt /app/requirementes.txt
RUN pip install --no-cache-dir --upgrade -r /app/requirementes.txt
COPY . /app
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
docker-compose
services:
web-server:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/app
ports:
- '80:80'
Compañ[email protected] los invito a descargar mi proyecto y para el paquete “game” ejecutarlo, jugar, divertirse y comentarme que mejora debería tener el código. Muchas gracias de antemano.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.