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.

Funciona si lo ejecuto manualmente en el agente, pero no funciona si Jenkins lo ejecuta como parte del pipeline.

Estoy intentando construir una imagen de Docker como parte del pipeline de mi proyecto y pasar algunas credenciales como secretos. La línea comprometida es la siguiente:

DOCKER_BUILDKIT=1 docker build --secret id=ARTIFACTORY_USERNAME --secret id=ARTIFACTORY_PASSWORD -f "$DOCKERFILE" contexto

Estoy obteniendo el siguiente error:

could not parse secrets: [id=ARTIFACTORY_USERNAME id=ARTIFACTORY_PASSWORD]: failed to stat ARTIFACTORY_USERNAME: stat ARTIFACTORY_USERNAME: no such file or directory

Lo extraño es que esto funciona en la misma máquina donde Jenkins lo ejecuta si lo ejecuto manualmente.

¿Hay algo que Jenkins haga entre el inicio de la ejecución y la llegada del script que pueda estar afectando esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Es posible que Jenkins no esté transmitiendo correctamente las contraseñas al comando de construcción de Docker. Una solución podría ser verificar nuevamente que las contraseñas estén correctamente configuradas en Jenkins y que sean accesibles para el trabajo de pipeline.

    Además, podría ser útil revisar las variables de entorno de Jenkins para asegurarse de que coincidan con las requeridas por el comando de construcción de Docker. También es posible que haya un problema de ruta y que las contraseñas no estén ubicadas en el directorio correcto.

    Finalmente, podría valer la pena intentar ejecutar el comando de construcción de Docker sin la bandera DOCKER_BUILDKIT=1 para ver si eso resuelve el problema. A veces, esta bandera puede causar problemas con las contraseñas.

    En general, es importante solucionar problemas y aislar la causa raíz del problema para construir correctamente la imagen de Docker con las contraseñas requeridas en el pipeline.

Comments are closed.