Installation de GD dans Docker
Je suis un complet Docker novice, mais je suis d'avoir à maintenir un système existant. Le Dockerfile que j'utilise est comme ci-dessous:
FROM php:5.6-apache
RUN docker-php-ext-install mysql mysqli
RUN apt-get update -y && apt-get install -y sendmail
RUN apt-get update && \
apt-get install -y \
zlib1g-dev
RUN docker-php-ext-install mbstring
RUN docker-php-ext-install zip
RUN docker-php-ext-install gd
Quand je lance le 'panneau de construction [sitename]" tout semble ok jusqu'à ce que j'obtiens l'erreur:
configure: error: png.h not found.
The command '/bin/sh -c docker-php-ext-install gd' returned a non-zero code: 1
Quelle est la cause de cette erreur?
source d'informationauteur evilscary
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter le
libpng-dev
colis à votreDockerfile
:Puis aller dans le répertoire avec
Dockerfile
et de l'exécution:docker build -t sitename .
Cela a fonctionné dans mon cas:
Laissez-moi savoir si vous obtenez des erreurs.
EDIT:
Vous devriez voir quelque chose comme ceci:
EDIT2:
Pour vérifier tout:
S'il vous plaît exécuter le
docker build
commande de cette façon:docker build -t sitename:1.0 .
(ajout de
:1.0
ne devrait pas changer quoi que ce soit, je l'ai ajouté juste pour avoir de ligne supplémentaire dansdocker images
de sortie)Puis démarrer le conteneur:
docker run --name sitename_test -p 80:80 sitename:1.0
Il devrait fonctionner très bien.
Je suppose que apache est d'utiliser la norme de port (80) - peut-être vous avez besoin de régler ça. Si vous avez d'autres services/conteneurs à l'écoute sur le port 80, vous pouvez faire votre conteneur à l'écoute sur d'autres port:
docker run --name sitename_test -p 8080:80 sitename:1.0
Qui va rediriger le trafic du port 8080 vers le port 80 à l'intérieur du conteneur.
Normalement vous exécutez le récipient dans l'arrière-plan. Pour ce faire, ajoutez le
-d
option pour ledocker run
de commande (mais pour des fins de test, vous pouvez omettre-d
à voir la sortie de la console).Espère que ça aide.