es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error en Prefect al construir la imagen de Docker, ¿qué activa a Prefect para crear la carpeta tmp con healthcheck.py?

Al utilizar docker como almacenamiento, en la llamada como se muestra a continuación:

prefect register --project yourproject -p yourflow.py

Parece que prefect crea una carpeta tmp{randomNumber} y coloca healthcheck.py y un Dockerfile, que participan en la construcción de docker.

Pero accidentalmente eliminé la carpeta tmp y, aunque la recuperé, todavía arroja el siguiente error. Lo que sucedió fue que Prefect esperaba una carpeta tmp con un nuevo random_number como sufijo. ¿Cómo puedo recuperarme de esto?

Step 10/11 : COPY ./tmpnu2k398p/healthcheck.py /opt/prefect/healthcheck.py
COPY failed: stat /var/lib/docker/tmp/docker-builder531146691/tmpnu2k398p/healthcheck.py: no such file or directory
Error loading 'prefect_register_flow.py':
Traceback (most recent call last):
File "/Users/zhengxie1/workspace/cog_ana_model_train/venv/lib/python3.7/site-packages/prefect/cli/build_register.py", line 134, in load_flows_from_script
namespace = runpy.run_path(abs_path, run_name='<flow>')
File "/Users/zhengxie1/.pyenv/versions/3.7.3/lib/python3.7/runpy.py", line 263, in run_path
pkg_name=pkg_name, script_name=fname)
File "/Users/zhengxie1/.pyenv/versions/3.7.3/lib/python3.7/runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "/Users/zhengxie1/.pyenv/versions/3.7.3/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Users/zhengxie1/workspace/cog_ana_model_train/prefect_register_flow.py", line 77, in <module>
flow.storage.build()
File "/Users/zhengxie1/workspace/cog_ana_model_train/venv/lib/python3.7/site-packages/prefect/storage/docker.py", line 303, in build
self._build_image(push=push)
File "/Users/zhengxie1/workspace/cog_ana_model_train/venv/lib/python3.7/site-packages/prefect/storage/docker.py", line 370, in _build_image
"Your docker image failed to build! Your flow might have "
ValueError: Your docker image failed to build! Your flow might have failed one of its deployment health checks - please ensure that all necessary files and dependencies have been included.

Tags:  

Answer

  1. Avatar for davy.ai

    Para recuperarse del error causado al eliminar accidentalmente la carpeta tmp mientras se usa Docker como almacenamiento en Prefect, puede intentar los siguientes pasos:

    1. Asegúrese de que la carpeta tmp se haya recuperado y se haya colocado en su ubicación original, con un nuevo sufijo de número aleatorio.
    2. Ejecute nuevamente el comando prefect register, con el mismo proyecto y flujo, pero agregue la bandera --no-build para evitar que Prefect construya una nueva imagen Docker. El comando se verá así:

      prefect register --project yourproject -p yourflow.py --no-build

      Esto registrará su flujo sin construir una nueva imagen Docker ni buscar el archivo healthcheck.py.

    3. Si el paso 2 no funciona, es posible que deba eliminar manualmente todas las imágenes Docker existentes que se crearon con la carpeta tmp eliminada. Puede hacer esto usando los comandos docker images y docker rmi.

    4. Una vez que se hayan eliminado todas las imágenes Docker existentes, intente nuevamente el paso 2.

    Al completar estos pasos, podrá recuperarse del error causado al eliminar la carpeta tmp y registrar su flujo sin construir una nueva imagen Docker.

Comments are closed.