No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Dockerizando scripts de Python

17/20
Recursos

Aportes 66

Preguntas 41

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸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
    

  • docker-compose build: Este comando se utiliza para construir las im谩genes de los servicios especificados en el archivo 鈥渄ocker-compose.yml鈥. Esto significa que tomar谩 las especificaciones de construcci贸n de cada servicio, como el Dockerfile y los contextos, y crear谩 una imagen nueva y actualizada.

  • docker-compose ps: Este comando se utiliza para ver el estado de los servicios especificados en el archivo 鈥渄ocker-compose.yml鈥. Muestra si los servicios est谩n corriendo o detenidos, y tambi茅n muestra el nombre del contenedor, el puerto y la imagen utilizada.

  • docker-compose down: Este comando se utiliza para detener y eliminar los contenedores, redes y vol煤menes creados por 鈥渄ocker-compose up鈥.

  • docker-compose up -d: Este comando se utiliza para iniciar los servicios especificados en el archivo 鈥渄ocker-compose.yml鈥 en segundo plano. El par谩metro 鈥-d鈥 indica que se ejecutar谩 en segundo plano.

  • docker-compose ps: Es el mismo comando que el segundo, pero se repite para mostrar el estado de los servicios despu茅s de haber sido iniciados.

  • docker-compose exec app-csv bash: Este comando se utiliza para ejecutar una terminal dentro del contenedor especificado, en este caso 鈥渁pp-csv鈥, y conectarse a 茅l mediante una sesi贸n interactiva de bash. Esto permite realizar tareas dentro del contenedor, como verificar los archivos o ejecutar comandos.

Verifiquen que estas dos opciones est谩n activadas.

Cuando te das cuenta que estas corriendo un contenedor con un sistema dentro de un subsistema dentro de un sistema:
[](

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: Este comando se utiliza para construir las im谩genes de los servicios especificados en el archivo 鈥渄ocker-compose.yml鈥. Esto significa que tomar谩 las especificaciones de construcci贸n de cada servicio, como el Dockerfile y los contextos, y crear谩 una imagen nueva y actualizada. Es posible que tengas que usar sudo si te denega la acci贸n, de hecho creo que la mayor铆a necesita el sudo.
docker-compose build

docker compose build
  • docker-compose ps: Este comando se utiliza para ver el estado de los servicios especificados en el archivo 鈥渄ocker-compose.yml鈥. Muestra si los servicios est谩n corriendo o detenidos, y tambi茅n muestra el nombre del contenedor, el puerto y la imagen utilizada. ESte comando se repite una vez iniciado el servicio para mostrar su estado una vez iniciados.
docker-compose ps

docker compose ps
  • docker-compose down: Este comando se utiliza para detener y eliminar los contenedores, redes y vol煤menes creados por 鈥渄ocker-compose up鈥.
docker-compose down

docker compose down
  • docker-compose up -d: Este comando se utiliza para iniciar los servicios especificados en el archivo 鈥渄ocker-compose.yml鈥 en segundo plano. El par谩metro 鈥-d鈥 indica que se ejecutar谩 en segundo plano.
docker-compose up -d

docker compose up -d
  • docker-compose exec app-csv bash: Este comando se utiliza para ejecutar una terminal dentro del contenedor especificado, en este caso 鈥渁pp-csv鈥, y conectarse a 茅l mediante una sesi贸n interactiva de bash. Esto permite realizar tareas dentro del contenedor, como verificar los archivos o ejecutar comandos.
docker-compose exec app-csv bash

docker compose exec app-csv bash

Siento que este tema de docker requiere todo un curso para su implementaci贸n y funcionamiento.
Platzi lo tiene
https://platzi.com/cursos/docker/

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

Formas simples de solucionar lo que parece complicado.
Para quienes disfrutan WSL2

  • Activar la distribuci贸n de Linux en Docker.
  • Utilizar sudo antes del comando.
sudo docker-compose build
  • 1
  • 2

Para construir el contenedor

docker-compose build

<aside>
馃挕 Debemos tener inicializado el docker

</aside>

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

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 馃槃

La verdad me siento medio fundido con esta clase, pero eventualmente volver茅 a ella porque por lo que s茅, docker es muy utilizado.

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

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

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 鈥搉o-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.

Si te sale un error
Additional property service is not allowed

En el archivo docker-compose.yml seguro escriviste service en vez de services.

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.

Por alguna raz贸n tuve un error chungo en el paso 4/5 de la creaci贸n del contenedor que correg铆 cambiando la versi贸n de Python a 3.9:

FROM python:3.9

para los que no les sale un error en esta parte "RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt" al ejecutar docker-compose build, traten de reemplazar en el Dockerfile "FROM python:3.8" por "FROM python:3.9" o otra versi贸n m谩s reciente

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

EXPLICA BIEN REYYYYY!!!

tuve un error de argumentos , y tenia que escribir la imagen
quedo asi

<FROM ubutu:22.0.1> 

Consejo: tomen en cuenta los pre requisitos de la instalaci贸n docker y s铆ganlos al pie de la letra si no no va a funcionar.

Para distribuciones de **ubuntu** es necesario primero ejecutar: > sudo systemctl unmask docker > sudo systemctl start docker Luego inicializar la construcci贸n del docker (**Docker desktop** debe estar encendida) : `sudo docker compose build` Para lanzar el docker: `sudo docker compose up -d` Para ver el estado de los docker: `sudo docker compose ps` Ingresar al docker: `sudo docker compose exec app-csv bash` Para bajar el contenedor: `sudo docker compose down`
Si te arroja el siguiente error: ![](https://static.platzi.com/media/user_upload/image-38031044-68ed-4ff1-bbed-6845ee1be1c2.jpg) Lo que se debe hacer es ingresar en Docker Desktop: ![](https://static.platzi.com/media/user_upload/image-40f717e3-30d9-4ea6-8626-ec991b315961.jpg) Dar clic en Apply & restart
Paso como me toco, a mi realizar la clase fecha 22/01/2024 ```js ### Crear el contenedor como me toco `docker-compose -f docker_compose.ym build` ### Lanzar el contenedor `docker-compose -f docker_compose.yml up -d` ### Estado de los contenedores `docker-compose -f docker_compose.yml ps` ### Ingresar al conteneror `docker-compose -f docker_compose.yml exec app-csv bash` y para salir del contenedor se usa `exit` ```### Crear el contenedor como me toco `docker-compose -f docker\_compose.ym build` \### Lanzar el contenedor `docker-compose -f docker\_compose.yml up -d` \### Estado de los contenedores `docker-compose -f docker\_compose.yml ps` \### Ingresar al conteneror `docker-compose -f docker\_compose.yml exec app-csv bash` y para salir del contenedor se usa `exit`

Me gusto esta experiencia de trabajo en un contenedor. Es muy importante saber trabajar con este y estar muy atento al trabajo de este para evitar conflictos al momento de trabajar.

Les cuento que me estaba saliendo un error luego de correr el `sudo docker-compose build ` Por un lado tuve que correr el comando como sudo, pero el error era este: `=> ERROR [app-csv 4/5] RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt 1.6s` `------` ` > [app-csv 4/5] RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt:` `1.225 Processing /work/ci_py311/bottleneck_1676827011612/work` `1.230 ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: '/work/ci_py311/bottleneck_1676827011612/work'` `1.230` As铆 que le pregunt茅 a chatGPT por la soluci贸n y me dijo que deb铆a agregar una l铆nea al archivo Dockerfile. `RUN pip install --upgrade pip` De esta manera el archivo queda as铆: ```js FROM python:3.8 WORKDIR /app COPY requirements.txt /app/requirements.txt RUN pip install --upgrade pip RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt COPY . app/ CMD bash -c "while true; do sleep 1; done" ``` ya con eso me funcion贸.
Que buen curso, estaba buscando como pasar a productivo un proyecto que tengo!
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
Yo tom茅 el curso de Docker antes de tomar este curso y se los recomiendo infinitamente. Como aporte les dejo mi manera de hacer lo que se nos pide en esta clase, pero siguiendo las buenas pr谩cticas y recomendaciones que vienen en el curso de Docker. Empezando por el Dockerfile al cu谩l le cambi茅 la forma de ejecutar los comandos, usando el formato EXEC en vez del CMD que se usa en la explicaci贸n. ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202023-11-15%20220437-ba5cc46b-1f1f-4fe6-b7f9-01c491593bfa.jpg) Luego el comando que queremos como predeterminado para que el contenedor lo defin铆 en otro script llamado loop.sh ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202023-11-15%20220557-a3dc7b5d-156a-4f7d-a870-06def079f6ec.jpg) Tambi茅n us茅 un .dockerignore, que funciona b谩sicamente igual que el gitignore que ya usamos en clases pasadas, para evitar cargar el entorno virtual que ya hab铆amos creado. ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202023-11-15%20220843-0a8b88b2-dcdc-4a5f-8090-444ab7ce655d.jpg) Y finalmente especifiqu茅 la versi贸n de docker-compose a usar en el docker-compose.yml ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202023-11-15%20220903-4089b589-18b9-4324-b2eb-808736f4554b.jpg) Espero que les sirva! :D

Genial鈥!

Al tratar de ejecutar los comandos de docker obten铆a el siguiente mensaje: "permission denied while trying to connect to the Docker daemon socket at unix:". Para solucionarlo antepuse el comando "sudo" y pude ejecutarlos sin problemas, quedando por ejemplo as铆: "sudo docker-compose build". Lo comento por si a alguien le sirve, de todos modos tambi茅n se debe poder solucionar gestionando los permisos, si alguien sabe c贸mo avisen.

Si no les sirve:

$ docker-compose

Probablemente les sirva:

$ docker compose

Si quieren usar el alias docker-compose pueden activarlo en la configuraci贸n de Docker Desktop:

Hola a todos. luego de correr los pasos como les ense帽a el profe me sale esto: 鉃 app git:(main) 鉁 docker-compose build \[+] Building 0.6s (8/10) docker:desktop-linux \=> \[app-csv internal] load .dockerignore 0.0s \=> => transferring context: 2B 0.0s \=> \[app-csv internal] load build definition from dockerfile 0.0s \=> => transferring dockerfile: 239B 0.0s \=> \[app-csv internal] load metadata for docker.io/library/python:3.8 0.4s \=> \[app-csv auth] library/python:pull token for registry-1.docker.io 0.0s \=> \[app-csv 1/5] FROM docker.io/library/python:3.8@sha256:7a82536f5a2895b70416ccaffc49e6469d11ed8d9bf6bcfc52328faeae7c7710 0.0s \=> \[app-csv internal] load build context 0.2s \=> => transferring context: 864.41kB 0.2s \=> CACHED \[app-csv 2/5] WORKDIR /app 0.0s \=> ERROR \[app-csv 3/5] COPY requirementes.txt /app/requirementes.txt 0.0s \------ \> \[app-csv 3/5] COPY requirementes.txt /app/requirementes.txt: \------ failed to solve: failed to compute cache key: failed to calculate checksum of ref b35ce5e5-2b81-4601-addd-b7fa81bea6dc::ocp0bfvadco1x0bal2wr7r9qy: "/requirementes.txt": not found
Estos son los archivos docker actulizados a fecha de noviembre de 2023 para python3.10: Dockerfile: `FROM python:3.10` `WORKDIR /appCOPY 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"``]` docker-compose.yml: `services``:聽 ``web-server``:聽 聽 ``build``:聽 聽 聽 ``context``: .聽 聽 聽 ``dockerfile``: ``Dockerfile``聽 聽 ``volumes``:聽 聽 聽 - ``.:/app``聽 聽 ``ports``:聽 聽 聽- ``'80:80'`

Me daba error de docker-compose.yml y era porque en la lInea habIa escrito service en vez de sevices

services:
    app-csv:  # Name server
        build:
            context: .  # Construir container from Folder Donde estoy ubicado (Folder /app local)
            dockerfile: Dockerfile  # Execute file Dockerfile

Para los que estan en ubuntu y quieren utilizar del docker sin el comando sudo: <https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-es> ![](https://static.platzi.com/media/user_upload/image-0bb091d2-03c2-4257-8635-500af2977b56.jpg)
necesito ayuda al instalar docker me sale esto Docker Engine stopped

Mi aporte: cuando ejecutaba el comando > docker-compose build

me salia un error que decia:

Could not fetch URL https://pypi.org/simple/contourpy/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/contourpy/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1002)'))) - skipping
#0 8.393 ERROR: Could not find a version that satisfies the requirement contourpy==1.1.1 (from versions: none)

y lo soluciona agregando en la linea del RUN lo siguiente:

FROM python:3.11.4

WORKDIR /app
COPY requirements.txt /app/requirements.txt

RUN pip install --disable-pip-version-check --no-cache-dir --trusted-host pypi.org --trusted-host=files.pythonhosted.org --upgrade -r /app/requirements.txt
COPY . /app/

CMD bash -c "while true; do sleep 1; done"

De esta forma, se salta la verificaci贸n de certificados para pip dentro de tu Dockerfile.

Creo que debo hacer un curso solo para Docker

Ahora s铆 pude entender el concepto y alcance de Docker a trav茅s de c贸digo,algo real, muy buena clase

Para instalar Docker en Ubuntu, puedes seguir estos pasos:

  1. Actualiza los paquetes del sistema:

    sudo apt update
    
  2. Instala los paquetes necesarios para permitir que apt utilice repositorios a trav茅s de HTTPS:

    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    
  3. Agrega la clave GPG oficial de Docker:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
  4. Agrega el repositorio de Docker al sistema:

    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  5. Actualiza los paquetes nuevamente:

    sudo apt update
    
  6. Instala Docker Engine:

    sudo apt install docker-ce docker-ce-cli containerd.io
    
  7. Verifica que Docker se haya instalado correctamente ejecutando el siguiente comando para obtener la versi贸n:

    docker version
    
  8. Por defecto, para ejecutar comandos de Docker, es necesario tener permisos de superusuario (sudo). Si deseas ejecutar comandos de Docker sin sudo, puedes agregar tu usuario al grupo 鈥渄ocker鈥:

    sudo usermod -aG docker $USER
    
  9. Cierra la sesi贸n actual y vuelve a iniciarla para que los cambios surtan efecto.

Una vez completados estos pasos, deber铆as tener Docker instalado en tu sistema Ubuntu. Ahora puedes comenzar a utilizar Docker para crear y administrar contenedores.

Le copio al profe, tome bien nota para el d铆a que lo use 馃樁鈥嶐煂笍 por el momento con conda. Pero ahora ya vi el alcance tan brutal que tiene Docker.

Tuve los siguientes errores:

  1. ERROR: Could not find a version that satisfies the requirement pkg_resources==0.0.0 (from versions: none)
  2. Pip install: no such option: 鈥搉o-cache-dir

Los solucione , borrando del requeriments.txt la siguiente linea:
pkg_resources==0.0.0
Entiendo que este paquete funciona es para ambientes virtuales
El otro error fue borrando lo del cache: quizas la versi贸n de pipe3 que tengo instalada no admite este flag.
RUN pip install --upgrade -r /app/requeriments.txt

CREAR UN DOCKER CON EL COMANDO= **sudo docker compose build **
ACTIVAR EL DOCKER CON EL COMANDO = sudo docker compose up -d
PARA COMPROBAR QUE EL COMANDO ESTA ACTIVO = docker-compose ps
PARA ENTRAR EL DOCKER AGREGAR EL COMANDO = sudo docker compose exec app-csv bash
PARA SALIR DE DOCKER ESCRIBIMOS = **exit **
Para bajar un Docker se escribe el comando= sudo docker-compose down

Al correr el comando docker-compose build me sali贸 el error de 鈥淯nsupported config option for services鈥. Seg煤n encontr茅 en Stack Overflow, la soluci贸n m谩s com煤n a esto es a帽adir la siguiente l铆nea al inicio del archivo docker-compose.yaml

version: "3"

sauce: https://stackoverflow.com/questions/36724948/docker-compose-unsupported-config-option-for-services-service-web

docker no configuration file provided >

Si les sale un error de: docker no configuration file provided al ejecutar docker compese build. Solo no olviden que deben ubicarse en la carpeta donde est谩 el archivo Dockerfile.

En mi caso tuve un problema marcado con la flecha roja.
para ello tuve que ejecutar el comando 鈥渄ocker pull python:3.10鈥 primero para que lo instale la libreria que necesito y luego seguir con el comando que indica el profesor.

Para los que les sale este error al ejecutar sudo docker-compose build:

ERROR [4/5] RUN pip install --no-cache-dir -r /app/requirements.txt
ERROR: Could not find a version that satisfies the requirement
ERROR: No matching distribution found for command-not-found==0.3
WARNING: You are using pip version 22.0.4; however, version 23.1.2 is available.

Primero se debe activar el ambiente virtual, actualizar pip, actualizar el archivo requirements.txt, desactivar el ambiente virtual y volver a correr el comando sudo docker-compose build

Soluci贸n: 
python3 -m venv env 
python3 -m pip install --upgrade pip 
pip freeze > requirements.txt 
deactivate 
sudo docker-compose build

error de autorizacion

si sale este error

error corregido

pueden usar siempre sudo y funciona para todo lo que se llame docker

Al usar docker-compose build, obten铆a un mensaje de error diciendo que el comando no se hab铆a encontrado. El problema era que Docker solo trabaja con WSL versi贸n 2 y la que yo ten铆a era la 1. Con ayuda de la documentaci贸n ofrecida en la p谩gina de Docker, pude realizar exitosamente la conversi贸n; luego de eso ya no hubo problemas con el comando 馃槃

Sino le responde 鈥渄ocker-compose build鈥, cierren la terminal y vuelvanla a abrir

Las pocas veces que he usado docker no ha sido asi de sencillo, ja

Gente bonita.

Si les aparece el error de permission denied (en WSL) sigan este tutorial. Esta super r谩pido y si funciona.

Saludos

https://www.youtube.com/watch?v=XfZvKLNXC9M&t=16s

Dockerizar aplicaciones es hermoso, muchas gracias Nicolas!

Que clase magistral鈥n estos minutos entend铆 m谩s que en cualquier otro curso de Docker

Mi error y soluci贸n en Windows:

failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount20087919/dockerfile: no such file or directory

Para solucionarlo, ejecute en consola los siguientes comandos

export DOCKER_BUILDKIT=0
export COMPOSE_DOCKER_CLI_BUILD=0

Necesitamos un curso de docker por Nico!

Gran modulo el de docker, excelente explicaci贸n Nicol谩s

Si no le funciona, revisen que la identacion del archivo yml este correcta

El archivo Dockerfile se puede escribir tambi茅n con un solo COPY, as铆:

FROM  python:3.8

WORKDIR /app
COPY . /app

RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt

CMD bash -c "while true; do sleep 1; done"

Recuerden revisar que tengan espacio en el disco duro al realizar este proceso, sino genera error.

Adicionalmente, si les falla la creacion del docker por algun motivo, pueden ejecutar:

rm  ~/.docker/config.json 

entonces docker-compose up your-services deber铆a funcionar

A mi me funciono ya que me generaba errores raros por un error en la primera ejecucion del dockers.

Esto desde WSL

tamb铆茅n pueden trabajar con podman, mas liviano