From 16d6f533098d8d8bcf1c96e5eab8f7096ca7931a Mon Sep 17 00:00:00 2001 From: Nikolay Kharitonov Date: Thu, 9 Feb 2023 12:42:22 +0300 Subject: [PATCH 1/5] Update to PHP 7.4 --- Makefile | 2 +- image/Dockerfile-php-fpm-7.4-alpine | 57 +++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 image/Dockerfile-php-fpm-7.4-alpine diff --git a/Makefile b/Makefile index 7e44052..1509446 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ duild: - cd image && IMAGE_NAME=php-fpm-7.1-alpine ../hooks/build + cd image && IMAGE_NAME=php-fpm-7.4-alpine ../hooks/build .PHONY: test test: test-static-analysis test-environment diff --git a/image/Dockerfile-php-fpm-7.4-alpine b/image/Dockerfile-php-fpm-7.4-alpine new file mode 100644 index 0000000..a494849 --- /dev/null +++ b/image/Dockerfile-php-fpm-7.4-alpine @@ -0,0 +1,57 @@ +FROM php:7.4-fpm-alpine + +RUN set -ex \ + + # Update + && apk add --update \ + + # Install dependencies + && apk add --no-cache --virtual .deps \ + zlib \ + libzip \ + libpng \ + libjpeg-turbo \ + freetype \ + libxslt \ + + # Install dev dependencies + && apk add --no-cache --virtual .build-deps \ + zlib-dev \ + libzip-dev \ + libpng-dev \ + libjpeg-turbo-dev \ + freetype-dev \ + libxslt-dev \ + + # Configure + && docker-php-ext-configure gd \ + --with-freetype \ + --with-jpeg \ + + # Build and install + && docker-php-ext-install -j$(nproc) \ + gd \ + zip \ + xsl \ + mysqli \ + pdo_mysql \ + + # Clean + && rm -rf /tmp/* \ + && apk del --purge .build-deps + +CMD ["php-fpm"] + +EXPOSE 9000 + +ARG BUILD_DATE +ARG VCS_REF + +LABEL org.label-schema.build-date=$BUILD_DATE \ + org.label-schema.vcs-url="https://github.com/Dockerware/docker-umi.cms.git" \ + org.label-schema.vcs-ref=$VCS_REF \ + org.label-schema.schema-version="1.0" \ + org.label-schema.vendor="DockerWare" \ + org.label-schema.name="docker-umi.cms" \ + org.label-schema.description="Docker Community Image packaging for UMI.CMS" \ + org.label-schema.url="https://github.com/Dockerware/docker-umi.cms" From c337da9c68e87624e512927e5bb5c879f5354ae8 Mon Sep 17 00:00:00 2001 From: Nikolay Kharitonov Date: Thu, 9 Feb 2023 12:57:04 +0300 Subject: [PATCH 2/5] Github Actions build --- .github/workflows/build-image.yml | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/build-image.yml diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml new file mode 100644 index 0000000..7a3f71f --- /dev/null +++ b/.github/workflows/build-image.yml @@ -0,0 +1,33 @@ +name: Build docker image +on: + workflow_dispatch: + inputs: + IMAGE_NAME: + type: string + required: true + default: 'php-fpm-7.4-alpine' +permissions: + contents: read + packages: write +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + - name: Checkout source + uses: actions/checkout@v3 + - name: Log in to the Container registry + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push Docker images + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: . + file: image/Dockerfile-${{ github.event.inputs.IMAGE_NAME }} + push: true + tags: ghcr.io/${{ github.repository }}:${{ github.event.inputs.IMAGE_NAME }} From 1d7810a3f293b7eb7a67668aecbbba26897d3be7 Mon Sep 17 00:00:00 2001 From: Nikolay Kharitonov Date: Mon, 20 Mar 2023 01:37:29 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=E2=9C=A8=20php-redis=20extension=20for=20p?= =?UTF-8?q?hp=207.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image/Dockerfile-php-fpm-7.4-alpine | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/image/Dockerfile-php-fpm-7.4-alpine b/image/Dockerfile-php-fpm-7.4-alpine index a494849..5632714 100644 --- a/image/Dockerfile-php-fpm-7.4-alpine +++ b/image/Dockerfile-php-fpm-7.4-alpine @@ -1,5 +1,27 @@ +FROM php:7.4-fpm-alpine as builder + +RUN set -ex \ + + # Update + && apk add --update \ + + # Install build dependencies + && apk add --no-cache --virtual .build-tools \ + autoconf \ + make \ + gcc \ + g++ \ + + # Install dev dependencies + && apk add --no-cache --virtual .build-deps \ + zstd-dev \ + + && pecl install igbinary \ + && pecl install --configureoptions 'enable-redis-igbinary="yes" enable-redis-lzf="yes" enable-redis-zstd="yes"' redis + FROM php:7.4-fpm-alpine +COPY --from=builder /usr/local/lib/php/extensions/no-debug-non-zts-20190902/* /usr/local/lib/php/extensions/no-debug-non-zts-20190902 RUN set -ex \ # Update @@ -36,6 +58,11 @@ RUN set -ex \ mysqli \ pdo_mysql \ + # Enable pecl-built extensions + && docker-php-ext-enable \ + igbinary \ + redis \ + # Clean && rm -rf /tmp/* \ && apk del --purge .build-deps From 3f953d8049f37681a6384b0b99281616a9d8bb74 Mon Sep 17 00:00:00 2001 From: Nikolay Kharitonov Date: Mon, 3 Apr 2023 16:42:36 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=E2=9C=A8=20webp=20support=20for=20GD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image/Dockerfile-php-fpm-7.4-alpine | 3 +++ 1 file changed, 3 insertions(+) diff --git a/image/Dockerfile-php-fpm-7.4-alpine b/image/Dockerfile-php-fpm-7.4-alpine index 5632714..cb8774a 100644 --- a/image/Dockerfile-php-fpm-7.4-alpine +++ b/image/Dockerfile-php-fpm-7.4-alpine @@ -33,6 +33,7 @@ RUN set -ex \ libzip \ libpng \ libjpeg-turbo \ + libwebp \ freetype \ libxslt \ @@ -42,6 +43,7 @@ RUN set -ex \ libzip-dev \ libpng-dev \ libjpeg-turbo-dev \ + libwebp-dev \ freetype-dev \ libxslt-dev \ @@ -49,6 +51,7 @@ RUN set -ex \ && docker-php-ext-configure gd \ --with-freetype \ --with-jpeg \ + --with-webp \ # Build and install && docker-php-ext-install -j$(nproc) \ From 8d6972cd25918de2556ebdb4a0184fc6aaeb16cc Mon Sep 17 00:00:00 2001 From: Nikolay Kharitonov Date: Wed, 5 Apr 2023 01:08:16 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=E2=9C=A8=20memcached=20extension=20for=20p?= =?UTF-8?q?hp=207.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- image/Dockerfile-php-fpm-7.4-alpine | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/image/Dockerfile-php-fpm-7.4-alpine b/image/Dockerfile-php-fpm-7.4-alpine index cb8774a..85ace75 100644 --- a/image/Dockerfile-php-fpm-7.4-alpine +++ b/image/Dockerfile-php-fpm-7.4-alpine @@ -15,9 +15,32 @@ RUN set -ex \ # Install dev dependencies && apk add --no-cache --virtual .build-deps \ zstd-dev \ + zlib-dev \ + libevent-dev \ + libmemcached-dev \ && pecl install igbinary \ - && pecl install --configureoptions 'enable-redis-igbinary="yes" enable-redis-lzf="yes" enable-redis-zstd="yes"' redis + && pecl install \ + --configureoptions '\ + with-libmemcached-dir="/usr" \ + with-zlib-dir="/usr" \ + with-system-fastlz="no" \ + enable-memcached-igbinary="yes" \ + enable-memcached-msgpack="no" \ + enable-memcached-json="yes" \ + enable-memcached-protocol="no" \ + enable-memcached-sasl="yes" \ + enable-memcached-session="yes"\ + '\ + memcached \ + + && pecl install \ + --configureoptions '\ + enable-redis-igbinary="yes" \ + enable-redis-lzf="yes" \ + enable-redis-zstd="yes"\ + '\ + redis FROM php:7.4-fpm-alpine @@ -36,6 +59,7 @@ RUN set -ex \ libwebp \ freetype \ libxslt \ + libmemcached \ # Install dev dependencies && apk add --no-cache --virtual .build-deps \ @@ -64,6 +88,7 @@ RUN set -ex \ # Enable pecl-built extensions && docker-php-ext-enable \ igbinary \ + memcached \ redis \ # Clean