Verificar si la construcción de Docker ha fallado en el trabajo.
Obteniendo el estado de éxito del trabajo cuando la construcción de Docker falló
Muestra de CI
.release:build:template: &release_builder
image: docker:stable
stage: release:build
services:
- docker:dind
before_script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
after_script:
- export DOCKER_DEPLOY_IMAGE=$DOCKER_IMAGE_REPO:$(cat DOCKER_TAG)
- docker build --build-arg DOCKER_BASE_IMAGE --build-arg DOCKER_FRONT_IMAGE --build-arg DOCKER_VENDOR_IMAGE --compress -t $DOCKER_DEPLOY_IMAGE . -f .deploy/docker/$CI_ENVIRONMENT_NAME/Dockerfile; echo $?
- docker push $DOCKER_DEPLOY_IMAGE
artifacts:
paths:
- DOCKER_TAG
.release_build_prod:
<<: *release_builder
only:
- tags
script:
- echo $CI_COMMIT_TAG>DOCKER_TAG
environment:
name: prod
Intenté solucionarlo con docker build ... || exit 1
y también con echo $0?
pero después de la construcción no se muestra nada y estos pasos no me ayudan a resolver el problema.
Entonces, ¿cómo puedo comprobar si el comando de construcción de Docker en GitLab finalizó sin errores o si hubo un error y el trabajo FALLÓ?
davy.ai
Para verificar si el comando de construcción de Docker en GitLab terminó sin errores o falló, puedes usar la variable
$?
que devuelve el código de salida del comando anterior. En este caso, puedes modificar la secciónafter_script
para incluir una declaración condicional que verifique si el código de salida devuelto por el comandodocker build
es cero (indicando éxito) o no cero (indicando fallo).Aquí tienes un ejemplo:
En este ejemplo, la declaración
if
verifica si el código de salida del comandodocker build
es igual a cero. Si es así, se ejecuta el comandodocker push
. Si no, el trabajo falla usando el comandoexit 1
.