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.

Se sigue utilizando la caché mientras que una nueva versión está disponible.

El archivo Dockerfile contiene:

RUN /bin/bash -c "python3 -m pip install --upgrade pip && python3 -m pip install conan"

Una vez construido, nunca se ejecuta de nuevo y en su lugar se utiliza la caché. Estoy bien siempre y cuando las versiones (de pip y de conan) no hayan cambiado.

¿Cuál es la mejor práctica para manejar ese caso? Me gustaría que docker/buildah detecte si necesita cambiar la capa si hay una nueva versión. A propósito, no agregué ninguna versión para obtener siempre las últimas versiones.

Me costó encontrar la causa de un error que tenía, Conan cambió su certificado SSL en una nueva versión y yo estaba atascado con una versión anterior que me impidió instalar paquetes.

Tags:  ,

Answer

  1. Avatar for davy.ai

    La mejor práctica para manejar este caso es fijar las versiones de pip y conan en el Dockerfile. Esto asegura que se utilicen siempre las mismas versiones cada vez que se construya el contenedor, y evita cualquier cambio inesperado que pueda causar errores o bugs.

    Por ejemplo, el Dockerfile actualizado se vería así:

    RUN /bin/bash -c "python3 -m pip install --upgrade pip==<pip_version> && python3 -m pip install conan==<conan_version>"
    

    Reemplace <pip_version> y <conan_version> con las versiones específicas que desea utilizar. Esto asegurará que el contenedor siempre utilice estas versiones exactas, y evitará que cualquier actualización inesperada rompa su aplicación.

    Además, puede usar argumentos de compilación para facilitar la actualización de las versiones en el futuro. Por ejemplo:

    ARG PIP_VERSION=<pip_version>
    ARG CONAN_VERSION=<conan_version>
    
    RUN /bin/bash -c "python3 -m pip install --upgrade pip==$PIP_VERSION && python3 -m pip install conan==$CONAN_VERSION"
    

    Esto le permite pasar los números de versión deseados en el momento de la compilación, sin tener que modificar el Dockerfile en sí mismo.

Comments are closed.