How to use GD docker php ext install and configure GD CMD
Posted October 23, 2023
GD Extension dynamically manipulates images in PHP. It allows you to resize, cropping, watermark, and generate PHP thumbnails. When Working with Docker, you must run docker php ext install gd and docker php ext configure gd commands. They allow you to install and configure GD when running PHP on a Docker environment.
This guide teaches you how to use docker php ext install gd and docker php ext configure gd commands with freetype and jpeg. This way, you will be able to run imagecreatefromjpeg()
, imagecreatetruecolor()
, imagecopyresampled()
, etc. functions for PHP image manipulation on Docker.
Dive into this guide and run the docker php ext command to install and configure GD within Docker.
Related: Mastering docker php ext install and enable Imagick Commands
Step 1: Setting up Dockerfile with PHP and GD Extension
The right way to install and configure any PHP extensions is to use a Dockerfile. It allows you to write all the instructions your app needs to run on Docker.
Assuming you have the following PHP Docker structure:
php-gd/
│ ├── gd.dockerfile
│ └── docker-compose.yml
└── app/
└── index.php
Your Dockerfile will install and configure GD. Create A Dockerfile illustrating how to install GD Extension for PHP as follows:
FROM php:8.2-apache
# Install GD extension with JPEG and PNG support
RUN apt-get update \
&& apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev \
# configure the GD extension to include support for JPEG and PNG image formats
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd
Here:
- You are running PHP 8.2 on Apache, choose the PHP version needed for the project as well.
libfreetype6-dev
,libjpeg62-turbo-dev
, andlibpng-dev
packages handle various image formats (FreeType for fonts, JPEG for JPEG images, and libpng for PNG images) within the GD extension.- The
docker-php-ext-configure
command enables GD extension with with-freetype –with-jpeg.docker-php-ext-configure
adds specific settings and features tailored to the project’s needs. docker-php-ext-install
compiles and installs the GD extension into your PHP Docker environment.
Once these commands are ready, Docker will run PHP and allow you to write GD-related scripts.
Step 2: Creating Container PHP with GD Extension and Docker Compose
Once Docker files get the GD PHP extension installed and configured, you can spin up the Docker Compose Container and expose yourself to the PHP app. Create a docker-compose.yml
file as follows:
version: '3.9'
services:
php-apache:
build:
context: .
dockerfile: gd.dockerfile
ports:
- "8080:80"
# Docker Compose Working directory path
volumes:
- ./app:/var/www/html
You must note that volumes
will Copy your PHP code on app
and share it with Docker. This way, your index.php
file will be executed and served on the web.
Let’s create a simple GD PHP script on app/index.php
and compile a blank image.
Step 3: Illustrate the practical use of docker php ext configure and enable GD with PHP
To test if the GD extension is correctly working on Docker, we will create a simple blank image with a white background and Draw a red rectangle. Add the following code to your app/index.php
:
<?php
// Create a blank image with a white background
$image = imagecreatetruecolor(400, 200);
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
// Draw a red rectangle
$red = imagecolorallocate($image, 255, 0, 0);
imagefilledrectangle($image, 50, 50, 350, 150, $red);
// Output the image
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
Step 4: Creating a GD PHP Docker Container.
Now, use the docker-compose command to run your GD PHP app. Use the following command to build and run your containers:
docker-compose up -d --build
Confirm your container is running:
Open http://localhost:8000
on your browser and access your app:
And yes, GD Extension is correctly installed on Docker, and your PHP script works.
Conclusion
You have created a simple GD PHP container. The main goal was to demonstrate how to use docker php ext install gd and docker php ext configure gd commands with Docker. I hope you found this helpful.
Also check this docker php ext install intl Commands with Docker guide and dive deeper.