No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Dockerizando scripts de Python

17/20
Recursos

Aportes 18

Preguntas 16

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

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
    

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.

Verifiquen que estas dos opciones están activadas.

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

  • docker-compose build: Este comando se utiliza para construir las imágenes de los servicios especificados en el archivo “docker-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 “docker-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 “docker-compose up”.

  • docker-compose up -d: Este comando se utiliza para iniciar los servicios especificados en el archivo “docker-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 “app-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.

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

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

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.

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

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

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"

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

Si te sale un error
Additional property service is not allowed

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

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