libgd no está instalado en php: 5.6-cli docker

Tengo un proyecto dentro de un contenedor y estoy tratando de usar gd lib para crear imágenes.

Hago dentro del bash del contenedor este command:

apt-get install php5-gd 

Nada cambia después de reiniciar y ejecutar php -m

¿Que debería hacer?

Editar:

Agregué a mi file Docker:

 RUN apt-get -qq update && apt-get -qq install libpng-dev RUN docker-php-ext-install gd 

Ejecuto docker build -t [nombre]

Pero cuando ejecuto el bash y php -m : php -m

 [PHP Modules] Core ctype curl date dom ereg fileinfo filter ftp hash iconv json libxml mbstring mysql mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar posix readline Reflection session SimpleXML SPL sqlite3 standard tokenizer xml xmlreader xmlwriter zip zlib 

No instale gd manualmente. docker-php-ext-install la docker-php-ext-install para eso.

Dentro del file docker, agregue:

 RUN docker-php-ext-install gd 

Hay un poco de molestia con docker-php-ext-install que tiene que averiguar de forma manual qué dependencies necesitará. No se resuelven automáticamente. Debido a esto, el command se bloqueará por sí mismo, con:

 configure: error: png.h not found. 

Si busca el error, se dará count de que necesita libpng-dev .

Por lo tanto, finalmente, todo el Dockerfile debería verse de la siguiente manera:

 FROM php:5.6-cli RUN apt-get -qq update && apt-get -qq install libpng-dev RUN docker-php-ext-install gd > /dev/null 

docker-php-ext-install es un poco detallado en su salida, por lo tanto, me gusta canalizar su salida a /dev/null . Los errores y advertencias seguirán imprimiéndose.

Puede verificar que la image tenga la extensión adecuada ejecutando la image:

 docker build -t php-gd . docker run php-gd /bin/bash -c "php -m | grep gd" 

Se imprimirá:

 gd 

Lo mismo dentro de una stack de comstackdor de docker:

docker-compose.yml :

 gd-example: build: . tty: true docker-compose up --build -d docker ps // to find container's name. You may also set in the config docker exec -it docker_gd-example_1 php -m | grep gd 

Dos notas al margen:

  1. De su pregunta no estaba claro si construyó su contenedor y luego ejecuta apt-get install php5-gd desde allí. Si es así, entonces solo instalaría php5-gd dentro de ese contenedor y cada vez que lo vuelva a crear, desaparecerá. Siempre agregue cosas a un contenedor desde Dockerfile .

  2. Prueba php:7.1-cli . ¿Realmente necesitas soportar php 5.6? 😉