Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce amount and size of Docker image layers #1

Merged
merged 1 commit into from
Nov 23, 2021

Conversation

markiewitch
Copy link

By utilizing mlocati/php-extension-installer I was able to reduce the layers size - under the hood -dev packages are installed only temporarily for the duration of extension compilation. gd extension still has freetype and jpeg support enabled - php -i can confirm this.

The one caveat with aforementioned installed is that unzip wasn't installed automatically and composer was complaining - hence the one apt-get install at the top.

docker image history comparison

Below you will find a comparison between an image built on original Dockerfile and after my modifications.

 ✘  ~/Sites/sylius/docker-images/php   master ●  docker image history sha256:80770d9234965677e14c7f601cac819e7b1885428868e867af2acfb60a32b890
IMAGE          CREATED          CREATED BY                                      SIZE      COMMENT
80770d923496   4 minutes ago    WORKDIR /                                       0B        buildkit.dockerfile.v0
<missing>      4 minutes ago    RUN /bin/sh -c curl -fs https://get.symfony.…   17.7MB    buildkit.dockerfile.v0
<missing>      4 minutes ago    COPY /usr/bin/composer /usr/bin/composer # b…   2.29MB    buildkit.dockerfile.v0
<missing>      4 minutes ago    ENV PHP_DATE_TIMEZONE=Europe/Warsaw             0B        buildkit.dockerfile.v0
<missing>      4 minutes ago    RUN /bin/sh -c docker-php-ext-enable memcach…   0B        buildkit.dockerfile.v0
<missing>      4 minutes ago    RUN /bin/sh -c docker-php-ext-enable apcu --…   0B        buildkit.dockerfile.v0
<missing>      4 minutes ago    RUN /bin/sh -c apt-get update &&     apt-get…   65.1MB    buildkit.dockerfile.v0
<missing>      23 minutes ago   COPY /usr/bin/install-php-extensions /usr/lo…   124kB     buildkit.dockerfile.v0
<missing>      25 hours ago     /bin/sh -c #(nop)  CMD ["php-fpm"]              0B        
[..]
<missing>      42 hours ago     /bin/sh -c #(nop) ADD file:a2405ebb9892d98be…   80.4MB    
 ~/Sites/sylius/docker-images/php   master ●  docker image history sha256:59c52bfa1b3a7aa94adbc05f408998d4e279fe03972fd2fcaf982ad8b5cc837a
IMAGE          CREATED          CREATED BY                                      SIZE      COMMENT
59c52bfa1b3a   41 minutes ago   WORKDIR /                                       0B        buildkit.dockerfile.v0
<missing>      41 minutes ago   RUN /bin/sh -c mv /root/.symfony/bin/symfony…   17.7MB    buildkit.dockerfile.v0
<missing>      41 minutes ago   RUN /bin/sh -c bash installer # buildkit        17.7MB    buildkit.dockerfile.v0
<missing>      41 minutes ago   RUN /bin/sh -c chmod +x installer # buildkit    6.16kB    buildkit.dockerfile.v0
<missing>      41 minutes ago   RUN /bin/sh -c wget https://get.symfony.com/…   6.16kB    buildkit.dockerfile.v0
<missing>      41 minutes ago   RUN /bin/sh -c apt install -y wget # buildkit   2.34MB    buildkit.dockerfile.v0
<missing>      41 minutes ago   WORKDIR /symfony                                0B        buildkit.dockerfile.v0
<missing>      41 minutes ago   COPY /usr/bin/composer /usr/bin/composer # b…   2.29MB    buildkit.dockerfile.v0
<missing>      41 minutes ago   ENV PHP_DATE_TIMEZONE=Europe/Warsaw             0B        buildkit.dockerfile.v0
<missing>      41 minutes ago   RUN /bin/sh -c docker-php-ext-enable imagick…   18B       buildkit.dockerfile.v0
<missing>      41 minutes ago   RUN /bin/sh -c pecl install imagick # buildk…   2.67MB    buildkit.dockerfile.v0
<missing>      41 minutes ago   RUN /bin/sh -c apt install -y libmagickwand-…   159MB     buildkit.dockerfile.v0
<missing>      42 minutes ago   RUN /bin/sh -c docker-php-ext-configure gd -…   124MB     buildkit.dockerfile.v0
<missing>      42 minutes ago   RUN /bin/sh -c docker-php-ext-enable memcach…   20B       buildkit.dockerfile.v0
<missing>      42 minutes ago   RUN /bin/sh -c pecl install memcached # buil…   962kB     buildkit.dockerfile.v0
<missing>      42 minutes ago   RUN /bin/sh -c docker-php-ext-enable apcu --…   15B       buildkit.dockerfile.v0
<missing>      42 minutes ago   RUN /bin/sh -c pecl install apcu # buildkit     977kB     buildkit.dockerfile.v0
<missing>      42 minutes ago   RUN /bin/sh -c docker-php-ext-install opcach…   1.36MB    buildkit.dockerfile.v0
<missing>      42 minutes ago   RUN /bin/sh -c docker-php-ext-install pdo_my…   35.4kB    buildkit.dockerfile.v0
<missing>      42 minutes ago   RUN /bin/sh -c docker-php-ext-install intl #…   486kB     buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c docker-php-ext-install filein…   6.79MB    buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c docker-php-ext-install exif #…   92.9kB    buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c docker-php-ext-install gd # b…   547kB     buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c apt install -y libmemcached-d…   3.09MB    buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c apt install -y zip # buildkit    2.06MB    buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c apt install -y libicu-dev # b…   47.1MB    buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c apt install -y libfreetype6-d…   4.96MB    buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c apt install -y libjpeg-dev # …   2.71MB    buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c apt install -y libpng-dev # b…   2.16MB    buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c apt install -y zlib1g-dev # b…   1.49MB    buildkit.dockerfile.v0
<missing>      43 minutes ago   RUN /bin/sh -c apt update # buildkit            17.7MB    buildkit.dockerfile.v0
<missing>      25 hours ago     /bin/sh -c #(nop)  CMD ["php-fpm"]              0B        
[..]
<missing>      42 hours ago     /bin/sh -c #(nop) ADD file:a2405ebb9892d98be…   80.4MB 

@Arminek
Copy link

Arminek commented Nov 18, 2021

@markiewitch that is awesome!

@Arminek Arminek marked this pull request as ready for review November 18, 2021 21:07
@Arminek Arminek merged commit 8c0f2b7 into Sylius:master Nov 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants