menu fixe/httpd: erreur de Configuration: Pas de MPM chargé
J'ai un menu fixe basé sur le conteneur dans le httpd officiel de l'image.
De nulle part (après une nouvelle construction), il a commencé échoue avec l'erreur:
AH00534: httpd: Configuration error: No MPM loaded.
Rien d'autre.
Je suis sur le httpd image (FROM httpd:2.4
) et tout fonctionnait bien jusqu'à maintenant.
L'erreur est apparu seulement après l'élagage toutes les images dans mon système avec un docker system prune -af
Vous devez vous connecter pour publier un commentaire.
(edit, merci delboy1978uk)
L'erreur peut être évitée si elle est appliquée à une simple meilleure pratique: pin votre menu fixe les images pour une version spécifique au lieu de
latest
.Après le creusement de la commet officielle de la httpd image, j'ai trouvé la solution. (peut-être cette question/réponse peut aider les autres)
(d'après les commentaires sur le commit #17166574)
Donc, parce que j'ai été écrasez le fichier
/usr/local/apache2/conf/httpd.conf
sans déclarer explicitement une MPM de module, après cette validation, mon image a commencé à échouer.Avec cette solution rapide, tout est bien maintenant.
Pour l'ensemble de la correction, ajouter à vos
httpd.conf
fichier (merci svinther):ou, pour une solution d'avenir, vous pouvez modifier l'original http.fichier conf à l'aide de sed.
Après avoir comparé ma configuration avec la dernière httpd:2.4 configuration, j'ai trouvé que ces nouvelles lignes devaient être fusionnées dans conf/httpd.conf
Note à moi-même: Lors de la construction de la dérivée httpd docker image, il serait probablement préférable de mod les fichiers de conf avec sed, qu'il suffit de COPIER dans un fichier statique
Beaucoup comme la solution retenue fonctionne, c'est pas l'idéal. La vraie raison pour laquelle vous faites cette erreur est probablement le fait que votre Dockerfile commence avec la ligne suivante:
Que
latest
partie, est de vous demander pour la dernière et meilleure version de Apache.Ne pas le faire. C'est votre infrastructure. Verrouiller à un numéro de version.
Quelque chose comme
C'est la vraie réponse. Ne pas faire que des risques de votre propre base de code défaut lorsque des tiers fournisseurs de logiciels de mise à jour de leur code.
Obtenir la dernière version de
httpd.conf
, et de prendre en note le numéro de version, puis de le personnaliser avec vos modifications, et d'obtenir que:latest
l'enfer hors de votre Dockerfile.Im en utilisant ce dans mon panneau de fichier
Et j'ai résolu ce problème en ajoutant cette ligne à /etc/docker/daemon.json