Jelajahi Sumber

Streamlined PHP 7.4 Docker image for parity with 8.1 image.

Mark Shust 3 tahun lalu
induk
melakukan
481097b3f9

+ 1 - 1
.github/workflows/build-php-7.4.yml

@@ -31,4 +31,4 @@ jobs:
           push: true
           tags: |
             markoshust/magento-php:7.4-fpm
-            markoshust/magento-php:7.4-fpm-13
+            markoshust/magento-php:7.4-fpm-14

+ 1 - 1
.github/workflows/build-php.yml

@@ -31,7 +31,7 @@ jobs:
           push: true
           tags: |
             markoshust/magento-php:7.4-fpm
-            markoshust/magento-php:7.4-fpm-12
+            markoshust/magento-php:7.4-fpm-14
   php-8-1:
     runs-on: ubuntu-latest
     steps:

+ 77 - 94
images/php/7.4/Dockerfile

@@ -2,110 +2,93 @@ FROM php:7.4-fpm-buster
 MAINTAINER Mark Shust <mark@shust.com>
 
 ARG APP_ID=1000
-
-RUN apt-get update && apt-get install -y \
-  cron \
-  git \
-  gzip \
-  libbz2-dev \
-  libfreetype6-dev \
-  libicu-dev \
-  libjpeg62-turbo-dev \
-  libwebp-dev \
-  libmcrypt-dev \
-  libonig-dev \
-  libpng-dev \
-  libsodium-dev \
-  libssh2-1-dev \
-  libxslt1-dev \
-  libzip-dev \
-  lsof \
-  default-mysql-client \
-  vim \
-  zip \
-  procps
-
-RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp
-
-RUN docker-php-ext-install \
-  bcmath \
-  bz2 \
-  calendar \
-  exif \
-  gd \
-  gettext \
-  intl \
-  mbstring \
-  mysqli \
-  opcache \
-  pcntl \
-  pdo_mysql \
-  soap \
-  sockets \
-  sodium \
-  sysvmsg \
-  sysvsem \
-  sysvshm \
-  xsl \
-  zip
-
-ARG TARGETARCH
-
-RUN cd /tmp \
-  && ARCH=$(if [ "$TARGETARCH" = "arm64" ]; then echo aarch64; else echo x86-64; fi;) \
-  && curl -O https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$ARCH.tar.gz \
-  && tar zxvf ioncube_loaders_lin_$ARCH.tar.gz \
-  && export PHP_VERSION=$(php -r "echo PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;") \
-  && export PHP_EXT_DIR=$(php-config --extension-dir) \
-  && cp "./ioncube/ioncube_loader_lin_${PHP_VERSION}.so" "${PHP_EXT_DIR}/ioncube.so" \
-  && rm -rf ./ioncube \
-  && rm ioncube_loaders_lin_$ARCH.tar.gz \
-  && docker-php-ext-enable ioncube
-
-RUN pecl channel-update pecl.php.net \
-  && pecl install xdebug \
-  && docker-php-ext-enable xdebug
-
-RUN pecl install ssh2-1.2 \
-  && docker-php-ext-enable ssh2
-
-RUN pecl install redis \
-  && docker-php-ext-enable redis
-
-RUN apt-get install -y libmagickwand-dev \
-  && pecl install imagick  \
-  && docker-php-ext-enable imagick
-
 RUN groupadd -g "$APP_ID" app \
   && useradd -g "$APP_ID" -u "$APP_ID" -d /var/www -s /bin/bash app
 
-RUN apt-get install -y gnupg \
-  && curl -sL https://deb.nodesource.com/setup_14.x | bash - \
-  && apt-get install -y nodejs \
-  && mkdir /var/www/.config /var/www/.npm \
-  && chown app:app /var/www/.config /var/www/.npm \
-  && npm install -g grunt-cli
+RUN mkdir -p /etc/nginx/html /var/www/html /sock \
+  && chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
 
-RUN apt-get install -y msmtp mailutils
-COPY conf/msmtprc /etc/msmtprc
+RUN apt-get update && apt-get install -y \
+    cron \
+    default-mysql-client \
+    git \
+    gnupg \
+    gzip \
+    libbz2-dev \
+    libfreetype6-dev \
+    libicu-dev \
+    libjpeg62-turbo-dev \
+    libmagickwand-dev \
+    libmcrypt-dev \
+    libonig-dev \
+    libpng-dev \
+    libsodium-dev \
+    libssh2-1-dev \
+    libwebp-dev \
+    libxslt1-dev \
+    libzip-dev \
+    lsof \
+    mailutils \
+    msmtp \
+    procps \
+    vim \
+    zip \
+  && rm -rf /var/lib/apt/lists/*
+
+RUN pecl channel-update pecl.php.net && pecl install \
+    imagick \
+    redis \
+    ssh2-1.2 \
+    xdebug \
+  && pecl clear-cache \
+  && rm -rf /tmp/pear
+
+RUN docker-php-ext-configure \
+    gd --with-freetype --with-jpeg --with-webp \
+  && docker-php-ext-install \
+    bcmath \
+    bz2 \
+    calendar \
+    exif \
+    gd \
+    gettext \
+    intl \
+    mbstring \
+    mysqli \
+    opcache \
+    pcntl \
+    pdo_mysql \
+    soap \
+    sockets \
+    sodium \
+    sysvmsg \
+    sysvsem \
+    sysvshm \
+    xsl \
+    zip \
+  && docker-php-ext-enable \
+    imagick \
+    redis \
+    ssh2 \
+    xdebug
+
+RUN version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
+    && architecture=$(uname -m) \
+    && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/$architecture/$version \
+    && mkdir -p /tmp/blackfire \
+    && tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire \
+    && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so \
+    && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz
 
 RUN curl -sS https://getcomposer.org/installer | \
   php -- --install-dir=/usr/local/bin --filename=composer
 
-RUN curl -s https://packages.blackfire.io/gpg.key | apt-key add - \
-  && echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list \
-  && apt-get update \
-  && apt-get install blackfire-agent blackfire-php
-
-COPY conf/www.conf /usr/local/etc/php-fpm.d/
-COPY conf/php.ini /usr/local/etc/php/
+COPY conf/blackfire.ini $PHP_INI_DIR/conf.d/blackfire.ini
+COPY conf/msmtprc /etc/msmtprc
+COPY conf/php.ini $PHP_INI_DIR
 COPY conf/php-fpm.conf /usr/local/etc/
-
-RUN mkdir -p /etc/nginx/html /var/www/html /sock \
-  && chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
+COPY conf/www.conf /usr/local/etc/php-fpm.d/
 
 USER app:app
-
 VOLUME /var/www
-
 WORKDIR /var/www/html

+ 2 - 0
images/php/7.4/conf/blackfire.ini

@@ -0,0 +1,2 @@
+extension=blackfire.so
+blackfire.agent_socket=tcp://blackfire:8307