Soy nuevo en Docker, así que tengan paciencia conmigo en esto.
Tengo un archivo app.py
, que simplemente usa apscheduler
para imprimir una oración en la consola. He seguido la estructura de la guía oficial para el archivo python. Cuando ejecuto el archivo en mi consola, funciona como se esperaba. (imprime la instrucción Tick cada 10 segundos).
Ahora, quiero dockerizarlo y subir la imagen a dockerhub. Seguí las documentaciones de Docker y así es como se ve mi DockerFile
:
FROM python:3 COPY requirements.txt . COPY app.py . RUN pip install --trusted-host pypi.python.org -r requirements.txt CMD [ "python", "app.py" ]
He enumerado los nombres de los módulos en requirements.txt
de la siguiente manera:
datetime apscheduler
La carpeta es plana. app.py
y requirements.txt
están en el mismo nivel en el directorio.
| |- app.py |- requirements.txt
Utilizo los siguientes comandos para construir la imagen de la ventana acoplable:
docker build . -t app1:ver3
La imagen de la ventana acoplable se compila correctamente y aparece cuando lo hago
docker images
El problema es que cuando ejecuto la imagen de la ventana acoplable con
docker run app1:ver3
la imagen no muestra ninguna salida.
De hecho, la imagen se muestra como se muestra cuando hago docker ps
, lo cual se espera, pero el comando de ejecución debería mostrarme declaraciones impresas en la consola cada 10 segundos.
Hay dos cosas aquí
Necesitas usar docker run -it app1:ver3
-i: Interactive mode -t: Enable TTY
Creo que solo -t
también puede hacer el trabajo. Vea el enlace de abajo para más detalles