Dockerfile l'accumulation possible d'ignorer l'erreur?
J'ai un Dockerfile. Lors de la construction de l'image de l'échec de la construction sur cette erreur:
automake: error: no 'Makefile.am' found for any configure output
Error build: The command [/bin/sh -c aclocal && autoconf && automake -a] returned a non-zero code: 1
en réalité, il est inoffensif. La bibliothèque s'appuie bien, mais Docker cesse de le construire une fois qu'il reçoit cette erreur. Est il possible que je peux charger le Panneau d'ignorer cela?
Vous devez vous connecter pour publier un commentaire.
Sûr. Docker est simplement de répondre à des codes d'erreur renvoyé par la
RUN
scripts shell dans leDockerfile
. Si votreDockerfile
a quelque chose comme:Vous pourriez la remplacer avec:
Cette retournera toujours un
0
(succès) code de sortie. L'inconvénient ici est que votre image apparaîtra pour construire avec succès, même si il y sont réelle des erreurs dans le processus de construction.service php7-fpm start
. Il serait de retour 1 et fonctionner l'échec, à l'aide deservice php7-fpm start; service php7-fpm status
fait l'affaire -, il semble résoudre un problème lors de la construction, puisque les deux commandes en cours d'exécution, on risquerait de provoquer des problèmes.Cela pourrait être d'intérêt pour ceux dont le potentiel d'erreurs dans leurs images sont pas assez inoffensif, passer inaperçue/enregistré. (Aussi, pas assez de rep. pour commenter, donc ici comme une réponse.)
Comme l'a souligné, l'inconvénient de
RUN make; exit 0
est que vous n'obtenez pas de savoir, si votre build failed. Donc, utiliser plutôt quelque chose comme:Comme cela, vous êtes averti par le panneau de l'image de processus de génération de journal, et vous pouvez voir exactement ce que est allé mal pendant
make
(ou quoi que ce soit d'autre d'exécution, ce n'est pas restreinte à faire).Vous pouvez également utiliser la norme bash ignorer l'erreur
|| true
, ce qui est agréable si vous êtes au milieu d'une chaîne: