JUAN JOSE BAILON CALDERON
Luis Efren Rojas Montañez
Maestro, muchas gracias, me ayudaste un montón.
Edgar Benítez
Muchas gracias , ya no me marca error
Klever Dario Hidalgo Alban
Francisco Javier Pecino Leon
me salvaste la vida, juraria haberlo escrito igual pero con tu copia pega solucionado. Gracias GRANDEEEE
PD: Ojo, el archivo es requirements.txt y os puede dar fallo por ello
Miguel Angel Reyes Moreno
Tu dockerfile tiene 3 errores. Escribiste 'requirementEs' en vez de 'requirements'
Arelys Viloria
Danilo Ibarra Jiménez
excelente aporte, graciass
Chanel Mariannis Paredes Sánchez
Muchas gracias por tu gran aporte.
Cuando te das cuenta que estas corriendo un contenedor con un sistema dentro de un subsistema dentro de un sistema: [](
Diego Jurado
Siento que este tema de docker requiere todo un curso para su implementación y funcionamiento. Platzi lo tiene https://platzi.com/cursos/docker/
Alejandro López
Para los que tengan este error:
En el mismo error se puede leer que nos dicen que se necesita Python 3.9 para cumplir con todos los requirements, la solución es simplemente cambiar la primera línea del Dockerfile por esta:
FROM python:3.9
Y listo :D
Enrique Alejandro Terrazas Huamaní
Muchas gracias, me sirvió tu solución
RENÉ CARDOSO
excelente, gracias!
a mí me pasó con la versión del numpy. Elegí la más reciente de las que me ofrecía, edité los requirements, y ya con eso funcionó lo demás.
Jonathan Velasquez
Formas simples de solucionar lo que parece complicado. Para quienes disfrutan WSL2
sudo docker-compose build
Andres Felipe Figueredo Perez
Me salvaste hermano xd
Bryan Carvajal
Jeinfferson Bernal G
Gracias por el resumen!
Jeinfferson Bernal G
Agrego el comando para bajar la aplicacion de docker
docker-compose down
Andres Sanchez
17. Dockerizando scripts de Python
docker-compose build # Para crear el docker docker-compose up -d # Para lanzarlo docker-compose ps # Para ver el estado del contenedor docker-compose exec app-csv bash # Para ingresar al docker y desarrollar ahi
Jose Alejandro Pantoja Giraldo
La verdad me siento medio fundido con esta clase, pero eventualmente volveré a ella porque por lo que sé, docker es muy utilizado.
jhon velasque
Yo hice lo mismo y funciono ,me ahorre la frustracion
Carlos Vidal
Necesito ayuda, al correr el comando "docker_compose build" la terminal zsh me arroja el siguiente mensaje: permission denied: docker-compose, tuve probleas en la instalacion la verdad no me quedo claro si hice las cosas bien
Andres Cervantes
hola, probablemente tengas problemas con las credenciales. Te sugiero traducir la página para un correcto entendimiento https://docs.docker.com/desktop/get-started/#credentials-management-for-linux-users
Andres Cervantes
Primero instala Docker Engine Posterior instala Docker Desktop Si es tu caso usas Ubuntu. si usas otro OS. Busca tu proceso, pero tienes que tener Docker Engine y Docker Desktop. Trata de desistalar e instalar nuevamente.
Chelsy Mena
Confirmo lo que entiendo
compose lo crea, luego up lo activa, con exec entro al contenedor, si uso compose de nuevo lo sobrescribo sin importar que esté activo, con exit salgo pero no lo apago, down lo apaga.
Y si lo quiero borrar? En vez de sobrescribirlo.
Diego Vergara
Es necesario copiar la carpeta env al Docker file?
José Reinaldo Duque Serna
Hola Diego. No es necesario copiar el directorio env, ya que con Docker ya se está creando un nuevo ambiente virtual a través de contenedores.
Paola Alapizco
Oscar Berrocal
Un pequeño dato curioso y es que al momento de ejecutar el ++docker-compose build++ me envio un error en la line a de codigo
RUN pip install --no-cache-dir --upgrade -r /app/requirement.txt
y era que apesar de tener el entorno no me lo ejecuto como pip3 asi que lo cambie y funciono nose si a alguien le paso igual o les funsiono como dijo el profesor
Mauricio Pérez
Otra cosa que hay que tener en cuenta es que si se esta usando una version de Python superior a la 3.8 al momento de armar el Dockerfile hay que cambiar la version de Python por la version que se usa de manera local, sino va a haber un error de compatibilidad en las dependencias.
José Antonio Contreras Ortiz
Este tutorial lo estoy tomando el 11/12/2023, por si alguna razon te aparece el error en el pip install sobre los requirements, probablemente se deba a las versiones que estas utilizando, especificamente la de matplotlib, si te empieza a fallar solo borra los requirements y pon la siguiente linea, de lo demas se encarga docker
matplotlib==3.7.4
José Antonio Contreras Ortiz
pandas=2.0.3
Diego Cesar Lerma Torres
Bobionwa .
EXPLICA BIEN REYYYYY!!!
Javier Benítez Malia
Tengan cuidado si ven este curso en estos días:
Dentro de Dockerfile, habrá que escribir en la primera línea de código (si tu versión de Python es superior a la 3.8)
FROM python:3.10
Si no escriben eso, le puede dar fallo a la hora de utilizar el comando docker-compose build
Miguel Gomez
Me gustaría compartirles una solución a un error que se me presentó. Realizando esta clase tuve un error al crear el contenedor en docker:
error: failed to solve: process “/bin/sh -c pip install –no-cache-dir -r requirements.txt” did not complete successfully: exit code: 1
Revisando a fondo me di cuenta que otros errores previos eran arrojados:
3.522 ERROR: No matching distribution found for numpy==1.25.0 pip install numpy doesn't work: "No matching distribution found"
Este error se debe a que en una de las clases anteriores se instala la última version de numpy, y para cuando estoy tomando la clase la version es 1.25.5 la cual no es compatible con python 3.8 (la versión que se quiere instalar con docker). La solución está en bien cambiar la versión de numpy a una compatible con py 3.8 o bien cambiando la versión de py que se quiere instalar con docker. Yo me fui por la primera opción.
Comento el pequeño problema que tuve, cuando intentaba correr el comando docker-compose build, obtenia un mensaje de error diciendo que el comando docker-compose no se habia encontrado y que debia instalarlo, pero al revisar mi version de compose
$ docker compose version
todo salia bien, compose estaba instalado.
Pero revisando la ducumentacion de docker sobre como usar compose, utilizaban el comando de la siguiente forma docker compose (sin el - ), cabe destacar que estoy usando PopOS(distro con base en ubuntu) y que NO instale docker desktop , tampoco realize la creacion del docker group posteriormente despues de la instalacion de docker por lo cual todo los comandos del video los tuve que realizar usando sudo
Dicho lo anterior, al no tener docker desktop no tuve que realizar ese paso del video, los camandos los ejecute de la siguiente manera:
$ sudo docker compose build
$ sudo docker compose ps
$ sudo docker compose up -d
$ sudo docker compose exec app-csv bash
Al hacerlo de esta forma todo salio sin ningun problema.
Dockerfile
FROM python:3.8 WORKDIR /app COPY requirementes.txt /app/requirementes.txt RUN pip install --no-cache-dir --upgrade -r /app/requirementes.txt COPY . /app/ CMD bash -c "while true; do sleep 1; done"
Archivo docker-compose-yml
services: app-csv: build: context: . dockerfile: Dockerfile
Esta clase está un poco fuerte aah? voy a dejarles mis apuntes, mi explicación del código, e información importante que creo que creo que le faltó a la clase para entenderlo todo mejor: .
++Código++:
FROM python:3.8 WORKDIR /app COPY requirements.txt /app/requirements.txt RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt COPY . /app CMD bash -c "while true; do sleep 1; done"
services: app-csv: build: context: . dockerfile: Dockerfile
++Explicación del código:++ .
++Docker compose:++ Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker multicontenedor. Permite definir los servicios, las redes y los volúmenes de la aplicación en un único archivo, y poner en marcha la aplicación con un único comando. . El logo de docker compose es muy auto descriptivo:
. ++¿que es una imagen en docker compose?++ . Una imagen en Docker es un archivo o file que se encuentra compuesto de diversas capas y que se utiliza con el objetivo de ejecutar un código dentro de un contenedor de Docker. Estas imágenes contienen todo el sistema de ficheros inicial en los que se va a basar el container para su funcionamiento, así como su punto de entrada o entrypoint. . Este punto de entrada se refiere a la aplicación o comando que deberá ejecutarse una vez que el usuario lance un contenedor que esté asociado a esa imagen en Docker. . De manera que estas imágenes se encargan de actuar como un script o conjunto de instrucciones útiles para construir un contenedor en Docker, así como una plantilla. De la misma forma, una imagen en esta plataforma funciona como un punto de partida cuando el usuario utiliza Docker. . ++¿Qué es una red en dockers?++
Las redes en Docker son una herramienta que se encarga de definir cómo se comunicarán los contenedores de la plataforma entre sí. . ++¿Qué es un volumen en docker compose?++ Un volumen de contenedor permite conservar los datos, aunque se elimine el Docker container. Los volúmenes también permiten un intercambio práctico de datos entre el host y el container. Crear un volumen de Docker es una buena solución para poder: Transferir datos a un contenedor de Docker. . ++Para correr el docker-compose a través de la terminal los comando:++ .
docker-compose build docker compose build
docker-compose ps docker compose ps
docker-compose down docker compose down
docker-compose up -d docker compose up -d
docker-compose exec app-csv bash docker compose exec app-csv bash
Para construir el contenedor
<aside> 💡 Debemos tener inicializado el docker </aside>docker-compose build
Para lanzar digitamos el comando
docker-compose up -d
Para ver el estado del contenedor
docker-compose ps
Para ejecutar el contenedor
docker-compose exec app-csv bash
Hola Diego :D no es necesario agregar la carpeta env al contenedor, ya que esa carpeta es para el entorno virtual creado con venv, en mi caso yo solo copie los archivos .py y e.csv, te dejo mi archivo dockerfile por si te es de ayuda :D
FROM python:3.8 WORKDIR /app COPY requirements.txt /app/requirements.txt RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt COPY *.py *.csv /app RUN mkdir /app/imgs CMD bash -c "while true; do sleep 1; done"
Al ejecutar el código del profesor en la parte de sudo docker-compose up -d me dio el siguiente error:
8.936 ERROR: Ignored the following versions that require a different python version: 1.2.0 Requires-Python >=3.9 8.938 ERROR: Could not find a version that satisfies the requirement contourpy==1.2.0 (from versions: 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.1.0, 1.1.1rc1, 1.1.1) 8.940 ERROR: No matching distribution found for contourpy==1.2.0 9.915
El problema se debe a que, al crear mi requirements.txt lo hice con las versiones más actuales de matplotlib y pandas para marzo de 2024. Y al hacer un downgrade a Python por la versión 3.8 como indicó el profesor, por supuesto que dio error al buscar compatibilidad entre la versión 3.8 de Python y la versión de marzo de 2024 de matplotlib y pandas. Lo que hice fue depurar mi requirements.txt con solo lo necesario y versiones razonables de las librerías requeridas
Si tienes el mismo error puedes copiar lo siguiente en tu requirements.txt y se va a resolver:
matplotlib==3.7.4 numpy>1 pandas==2.0.3