I'm getting this error when trying to deploy using alpine:
phpoffice/phpspreadsheet 1.2.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
Here's my Dockerfile:
FROM php:7.2-alpine
RUN apk update
RUN apk add zlib-dev gd php7-gd
RUN docker-php-ext-install sockets pdo_mysql zip
RUN apk add --no-cache libpng libpng-dev && docker-php-ext-install gd
The error is an output from a jenkins run. I think it's failing somewhere around here...
build:
docker run --rm --tty --user $$(id -u):$$(id -g) \
--volume "$$(pwd)":/app \
--volume "$$(pwd)/ops/jenkins/github.token":/tmp/auth.json \
--volume "$$(pwd)/ops/jenkins/composer_trust_github.com":/root/.ssh/config \
composer install --no-dev
rm -rf ops/docker/app.tar.gz
tar -czvf ops/docker/app.tar.gz -X ops/jenkins/build_excludes .
docker run --rm --tty --user $(id -u):$(id -g) \
--volume "$(pwd)":/app \
--volume "$(pwd)/ops/jenkins/github.token":/tmp/auth.json \
--volume "$(pwd)/ops/jenkins/composer_trust_github.com":/root/.ssh/config \
--volume "$(pwd)/ops/jenkins/php/php.ini":/usr/local/etc/php/php.ini \
composer install --no-dev
[32mLoading composer repositories with package information[39m
[32mInstalling dependencies from lock file[39m
[37;41mYour requirements could not be resolved to an installable set of packages.[39;49m
Problem 1
- Installation request for phpoffice/phpspreadsheet 1.2.1 -> satisfiable by phpoffice/phpspreadsheet[1.2.1].
- phpoffice/phpspreadsheet 1.2.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
How do I correctly add ext-gd?
UPDATE: More information
The commands of the Makefile which Jenkins calls in order are as follows:
prepare:
git clone [email protected]:xxx/go-php-sqs-consumer
cd go-php-sqs-consumer && glide install
docker run --rm -v "${PWD}/go-php-sqs-consumer":/go/src/app -w /go/src/app golang:1.8.1-alpine go build -o consumer
mv go-php-sqs-consumer/consumer ops/docker/consumer
rm -rf go-php-sqs-consumer
build:
echo "{\"github-oauth\":{\"github.com\":\"$$(credstash get github.tech-craft.jenkins-eu-west-1)\"}}" > ops/jenkins/github.token
docker run --rm --tty --user $$(id -u):$$(id -g) \
--volume "$$(pwd)":/app \
--volume "$$(pwd)/ops/jenkins/github.token":/tmp/auth.json \
--volume "$$(pwd)/ops/jenkins/composer_trust_github.com":/root/.ssh/config \
composer install --no-dev
rm -rf ops/docker/app.tar.gz
ansible-vault decrypt config.*.json && chmod a+r config.*.json
tar -czvf ops/docker/app.tar.gz -X ops/jenkins/build_excludes .
archive:
aws s3api put-object --bucket craft-build --key "auth-api/${s3_key_version}.tar.gz" --body "ops/docker/app.tar.gz"
aws s3api put-object --bucket craft-build --key "auth-api/current.tar.gz" --body "ops/docker/app.tar.gz"
containerise:
cd ops/docker && docker build --pull --no-cache -t application-exporter-service .
To Install PHP Extensions in your Docker File follow the following steps: Step 1: At first, the terminal in the docker file should be opened. The following command should be run. It will enable the bash for writing commands in PHP. It will take some to enable it. Step 2: Then the following command should be used.
Do you need to install PHP GD Extension? Don't worry I got you. In this post, I will share with you how to install PHP GD Extension in your windows. This extension is important if you have the functionality to create and manipulate images in PHP. Kindly follow the simple steps below.
We run the below command to install a gd extension. yum install php-gd. 2. Then, we restart the apache as follows. service httpd restart. That’s it!. Here we have installed the gd library. Similarly, adding GD library support involves executing the command: sudo apt-get install php7.0-gd.
Just created Dockerfile locally (exactly as yours) and added composer to it. phpoffice/phpspreadsheet installs without any issues. See my update.
Here's how I do it but on php
image, not alpine
. Maybe you can just "finetune" it to work on alpine:
RUN apt-get update && \
apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng12-dev && \
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \
docker-php-ext-install gd
It's help for me:
RUN apk update
RUN apk add libpng libpng-dev libjpeg-turbo-dev libwebp-dev zlib-dev libxpm-dev gd && docker-php-ext-install gd
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With