瀏覽代碼

Added sockets and other extensions to php image #186
Optimized install order and layer usage
Updated few deps with new versions
Pegged Composer at version 1.9.0 for predictability, moved to lower layer so updating version doesn't require rebuild of layers

Mark Shust 5 年之前
父節點
當前提交
4432033d61
共有 5 個文件被更改,包括 88 次插入68 次删除
  1. 6 3
      README.md
  2. 1 1
      compose/magento-2/bin/download
  3. 26 21
      images/php/7.1/Dockerfile
  4. 26 20
      images/php/7.2/Dockerfile
  5. 29 23
      images/php/7.3/Dockerfile

+ 6 - 3
README.md

@@ -47,14 +47,17 @@ View Dockerfiles:
       - [`1.13-0`](https://github.com/markshust/docker-magento/tree/11.0.0/images/nginx/1.13)
 - [markoshust/magento-php (Docker Hub)](https://hub.docker.com/r/markoshust/magento-php/)
   - 7.3
-      - [`latest`, `7.3-fpm`, `7.3-fpm-0`](https://github.com/markshust/docker-magento/tree/master/images/php/7.3)
+      - [`latest`, `7.3-fpm`, `7.3-fpm-1`](https://github.com/markshust/docker-magento/tree/master/images/php/7.3)
+      - [`7.3-fpm-0`](https://github.com/markshust/docker-magento/tree/24.2.0/images/php/7.3)
   - 7.2
-      - [`7.2-fpm`, `7.2-fpm-3`](https://github.com/markshust/docker-magento/tree/master/images/php/7.2)
+      - [`7.2-fpm`, `7.2-fpm-4`](https://github.com/markshust/docker-magento/tree/master/images/php/7.2)
+      - [`7.2-fpm-3`](https://github.com/markshust/docker-magento/tree/24.2.0/images/php/7.2)
       - [`7.2-fpm-2`](https://github.com/markshust/docker-magento/tree/23.2.1/images/php/7.2)
       - [`7.2-fpm-1`](https://github.com/markshust/docker-magento/tree/23.1.1/images/php/7.2)
       - [`7.2-fpm-0`](https://github.com/markshust/docker-magento/tree/23.0.0/images/php/7.2)
   - 7.1
-      - [`7.1-fpm`, `7.1-fpm-12`](https://github.com/markshust/docker-magento/tree/master/images/php/7.1)
+      - [`7.1-fpm`, `7.1-fpm-13`](https://github.com/markshust/docker-magento/tree/master/images/php/7.1)
+      - [`7.1-fpm-12`](https://github.com/markshust/docker-magento/tree/24.2.0/images/php/7.1)
       - [`7.1-fpm-11`](https://github.com/markshust/docker-magento/tree/23.2.1/images/php/7.1)
       - [`7.1-fpm-10`](https://github.com/markshust/docker-magento/tree/23.1.1/images/php/7.1)
       - [`7.1-fpm-9`](https://github.com/markshust/docker-magento/tree/23.0.0/images/php/7.1)

+ 1 - 1
compose/magento-2/bin/download

@@ -1,6 +1,6 @@
 #!/bin/bash
 [ -z "$1" ] && echo "Please specify the version to download (ex. 2.0.0)" && exit
-if [ ! -f "~/.docker-magento/magento2-$1.tar.gz" ]; then
+if [ ! -f ~/.docker-magento/magento2-$1.tar.gz ]; then
     mkdir -p ~/.docker-magento
     (cd ~/.docker-magento && curl -OL http://pubfiles.nexcess.net/magento/ce-packages/magento2-$1.tar.gz)
 fi

+ 26 - 21
images/php/7.1/Dockerfile

@@ -5,11 +5,14 @@ RUN apt-get update && apt-get install -y \
   cron \
   git \
   gzip \
+  libbz2-dev \
   libfreetype6-dev \
   libicu-dev \
   libjpeg62-turbo-dev \
   libmcrypt-dev \
   libpng-dev \
+  libsodium-dev \
+  libssh2-1-dev \
   libxslt1-dev \
   lsof \
   mysql-client \
@@ -21,35 +24,34 @@ RUN docker-php-ext-configure \
 
 RUN docker-php-ext-install \
   bcmath \
+  bz2 \
+  calendar \
+  exif \
   gd \
+  gettext \
   intl \
   mbstring \
+  mysqli \
   mcrypt \
   opcache \
+  pcntl \
   pdo_mysql \
   soap \
+  sockets \
+  sysvmsg \
+  sysvsem \
+  sysvshm \
   xsl \
   zip
 
-RUN echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list 
-
-RUN apt-get update && apt-get -t stretch-backports install -y \
-  libsodium-dev
-
-RUN pecl install -f libsodium-1.0.17 \
-  && echo "extension=sodium.so" > /usr/local/etc/php/conf.d/sodium.ini
-
 RUN pecl channel-update pecl.php.net \
-  && pecl install xdebug \
-  && docker-php-ext-enable xdebug \
-  && sed -i -e 's/^zend_extension/\;zend_extension/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
-
-RUN apt-get install -y libssh2-1-dev \
+  && pecl install libsodium \
   && pecl install ssh2-1.1.2 \
-  && docker-php-ext-enable ssh2
+  && pecl install xdebug
 
-RUN curl -sS https://getcomposer.org/installer | \
-  php -- --install-dir=/usr/local/bin --filename=composer
+RUN docker-php-ext-enable ssh2 \
+  && docker-php-ext-enable xdebug \
+  && sed -i -e 's/^zend_extension/\;zend_extension/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
 
 RUN groupadd -g 1000 app \
  && useradd -g 1000 -u 1000 -d /var/www -s /bin/bash app
@@ -65,17 +67,20 @@ RUN curl -sSLO https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mh
   && chmod +x mhsendmail_linux_amd64 \
   && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail
 
-RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/update/cron.php\n' >> /etc/crontab
-RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento cron:run\n' >> /etc/crontab
-RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento setup:cron:run\n#\n' >> /etc/crontab
+RUN curl -sS https://getcomposer.org/installer | \
+  php -- --version=1.9.0 --install-dir=/usr/local/bin --filename=composer
+
+RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/update/cron.php\n' >> /etc/crontab \
+  && printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento cron:run\n' >> /etc/crontab \
+  && printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento setup:cron:run\n#\n' >> /etc/crontab
 
 COPY conf/www.conf /usr/local/etc/php-fpm.d/
 COPY conf/php.ini /usr/local/etc/php/
 COPY conf/php-fpm.conf /usr/local/etc/
 COPY bin/cronstart /usr/local/bin/
 
-RUN mkdir /sock
-RUN chown -R app:app /usr/local/etc/php/conf.d /sock
+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
 
 USER app:app
 

+ 26 - 20
images/php/7.2/Dockerfile

@@ -5,11 +5,14 @@ RUN apt-get update && apt-get install -y \
   cron \
   git \
   gzip \
+  libbz2-dev \
   libfreetype6-dev \
   libicu-dev \
   libjpeg62-turbo-dev \
   libmcrypt-dev \
   libpng-dev \
+  libsodium-dev \
+  libssh2-1-dev \
   libxslt1-dev \
   lsof \
   mysql-client \
@@ -21,33 +24,33 @@ RUN docker-php-ext-configure \
 
 RUN docker-php-ext-install \
   bcmath \
+  bz2 \
+  calendar \
+  exif \
   gd \
+  gettext \
   intl \
   mbstring \
+  mysqli \
   opcache \
+  pcntl \
   pdo_mysql \
   soap \
+  sockets \
+  sysvmsg \
+  sysvsem \
+  sysvshm \
   xsl \
   zip
 
-RUN echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list 
-
-RUN apt-get update && apt-get -t stretch-backports install -y \
-  libsodium-dev
-
-RUN pecl install -f libsodium-1.0.17
-
 RUN pecl channel-update pecl.php.net \
-  && pecl install xdebug \
-  && docker-php-ext-enable xdebug \
-  && sed -i -e 's/^zend_extension/\;zend_extension/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
-
-RUN apt-get install -y libssh2-1-dev \
+  && pecl install libsodium \
   && pecl install ssh2-1.1.2 \
-  && docker-php-ext-enable ssh2
+  && pecl install xdebug
 
-RUN curl -sS https://getcomposer.org/installer | \
-  php -- --install-dir=/usr/local/bin --filename=composer
+RUN docker-php-ext-enable ssh2 \
+  && docker-php-ext-enable xdebug \
+  && sed -i -e 's/^zend_extension/\;zend_extension/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
 
 RUN groupadd -g 1000 app \
  && useradd -g 1000 -u 1000 -d /var/www -s /bin/bash app
@@ -63,17 +66,20 @@ RUN curl -sSLO https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mh
   && chmod +x mhsendmail_linux_amd64 \
   && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail
 
-RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/update/cron.php\n' >> /etc/crontab
-RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento cron:run\n' >> /etc/crontab
-RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento setup:cron:run\n#\n' >> /etc/crontab
+RUN curl -sS https://getcomposer.org/installer | \
+  php -- --version=1.9.0 --install-dir=/usr/local/bin --filename=composer
+
+RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/update/cron.php\n' >> /etc/crontab \
+  && printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento cron:run\n' >> /etc/crontab \
+  && printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento setup:cron:run\n#\n' >> /etc/crontab
 
 COPY conf/www.conf /usr/local/etc/php-fpm.d/
 COPY conf/php.ini /usr/local/etc/php/
 COPY conf/php-fpm.conf /usr/local/etc/
 COPY bin/cronstart /usr/local/bin/
 
-RUN mkdir -p /etc/nginx/html /var/www/html /sock
-RUN chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
+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
 
 USER app:app
 

+ 29 - 23
images/php/7.3/Dockerfile

@@ -5,11 +5,14 @@ RUN apt-get update && apt-get install -y \
   cron \
   git \
   gzip \
+  libbz2-dev \
   libfreetype6-dev \
   libicu-dev \
   libjpeg62-turbo-dev \
   libmcrypt-dev \
   libpng-dev \
+  libsodium-dev \
+  libssh2-1-dev \
   libxslt1-dev \
   libzip-dev \
   lsof \
@@ -22,42 +25,42 @@ RUN docker-php-ext-configure \
 
 RUN docker-php-ext-install \
   bcmath \
+  bz2 \
+  calendar \
+  exif \
   gd \
+  gettext \
   intl \
   mbstring \
+  mysqli \
   opcache \
+  pcntl \
   pdo_mysql \
   soap \
+  sockets \
+  sysvmsg \
+  sysvsem \
+  sysvshm \
   xsl \
   zip
 
-RUN echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list 
-
-RUN apt-get update && apt-get -t stretch-backports install -y \
-  libsodium-dev
-
-RUN pecl install -f libsodium-1.0.17
-
 RUN pecl channel-update pecl.php.net \
-  && pecl install xdebug \
-  && docker-php-ext-enable xdebug \
+  && pecl install libsodium \
+  && pecl install xdebug
+
+RUN docker-php-ext-enable xdebug \
   && sed -i -e 's/^zend_extension/\;zend_extension/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
 
 ## Replace next lines with below commented out version once issue is resolved
-RUN apt-get install -y libssh2-1-dev \
-  && curl -o /tmp/ssh2-1.2.tgz https://pecl.php.net/get/ssh2 \
+# https://github.com/php/pecl-networking-ssh2/pull/36
+# https://bugs.php.net/bug.php?id=78560
+RUN curl -o /tmp/ssh2-1.2.tgz https://pecl.php.net/get/ssh2 \
   && pear install /tmp/ssh2-1.2.tgz \
   && rm /tmp/ssh2-1.2.tgz \
   && docker-php-ext-enable ssh2
-## https://github.com/php/pecl-networking-ssh2/pull/36
-## https://bugs.php.net/bug.php?id=78560
-#RUN apt-get install -y libssh2-1-dev \
-#  && pecl install ssh2-1.2 \
+#RUN pecl install ssh2-1.2 \
 #  && docker-php-ext-enable ssh2
 
-RUN curl -sS https://getcomposer.org/installer | \
-  php -- --install-dir=/usr/local/bin --filename=composer
-
 RUN groupadd -g 1000 app \
  && useradd -g 1000 -u 1000 -d /var/www -s /bin/bash app
 
@@ -72,17 +75,20 @@ RUN curl -sSLO https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mh
   && chmod +x mhsendmail_linux_amd64 \
   && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail
 
-RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/update/cron.php\n' >> /etc/crontab
-RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento cron:run\n' >> /etc/crontab
-RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento setup:cron:run\n#\n' >> /etc/crontab
+RUN curl -sS https://getcomposer.org/installer | \
+  php -- --version=1.9.0 --install-dir=/usr/local/bin --filename=composer
+
+RUN printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/update/cron.php\n' >> /etc/crontab \
+  && printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento cron:run\n' >> /etc/crontab \
+  && printf '* *\t* * *\tapp\t%s/usr/local/bin/php /var/www/html/bin/magento setup:cron:run\n#\n' >> /etc/crontab
 
 COPY conf/www.conf /usr/local/etc/php-fpm.d/
 COPY conf/php.ini /usr/local/etc/php/
 COPY conf/php-fpm.conf /usr/local/etc/
 COPY bin/cronstart /usr/local/bin/
 
-RUN mkdir -p /etc/nginx/html /var/www/html /sock
-RUN chown -R app:app /etc/nginx /var/www /usr/local/etc/php/conf.d /sock
+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
 
 USER app:app