Skip to content

Instantly share code, notes, and snippets.

@michabbb
Created March 10, 2020 08:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michabbb/a19f237ffc4d126a498b5ea5363bc626 to your computer and use it in GitHub Desktop.
Save michabbb/a19f237ffc4d126a498b5ea5363bc626 to your computer and use it in GitHub Desktop.
Docker php 7.4
FROM php:7.4-fpm-alpine3.11
COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
RUN chmod u+x /usr/local/bin/docker-php-ext-* /usr/local/bin/docker-php-entrypoint
ENV IMAGICK_VERSION 3.4.4
ENV PHPMEMCACHED_VERSION 3.1.5
ENV PHPXDEBUG_VERSION 2.9.1
ENV PHPREDIS_VERSION 5.1.1
ENV GEARMAN_VERSION 2.0.3
# libsodium-dev \
# libsodium \
# build deps (none permanent)
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
&& apk update \
&& apk add --update --no-cache --virtual .build-deps \
git \
libintl \
icu \
libxml2-dev \
bzip2 \
openssl \
libbz2 \
bzip2-dev \
cyrus-sasl-dev memcached \
freetype-dev \
libmcrypt-dev \
gcc \
g++ \
make \
autoconf \
libc-dev \
pkgconf \
gmp \
gearman-dev gearman-libs
# && docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" sodium \
# build deps (keep)
# imagemagick-dev \
RUN apk add --update --no-cache \
libpng-dev \
gmp-dev \
icu-dev \
libmemcached-dev \
libzip-dev \
libpcre32 \
ncurses \
freetype-dev \
libjpeg-turbo-dev \
libpng-dev \
libjpeg-turbo-dev \
&& docker-php-ext-install intl zip soap \
&& docker-php-ext-install mysqli pdo_mysql \
&& docker-php-ext-enable mysqli pdo_mysql \
&& docker-php-ext-configure gd \
&& docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" gd \
&& docker-php-ext-install gmp \
&& docker-php-ext-install bcmath \
&& docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" soap bz2 mysqli \
&& docker-php-ext-install opcache
# && pecl install imagick-$IMAGICK_VERSION \
# && docker-php-ext-enable imagick \
# memcached
RUN curl -L -o /tmp/memc.tar.gz https://github.com/php-memcached-dev/php-memcached/archive/v$PHPMEMCACHED_VERSION.tar.gz \
&& mkdir -p /tmp/memc \
&& tar -xf /tmp/memc.tar.gz -C /tmp/memc --strip-components=1 \
&& ls -al /tmp/ \
&& rm -r /tmp/memc.tar.gz \
&& mkdir -p /usr/src/php/ext/memcached \
&& cp /tmp/memc/* /usr/src/php/ext/memcached -r \
&& ls -al /usr/src/php/ext/memcached \
&& docker-php-ext-configure memcached \
&& docker-php-ext-install memcached \
&& docker-php-ext-enable memcached \
&& docker-php-source delete \
&& rm -r /tmp/memc
# xdebug
RUN curl -L -o /tmp/xdebug.tgz "https://xdebug.org/files/xdebug-$PHPXDEBUG_VERSION.tgz" \
&& mkdir -p /tmp/xdebug \
&& tar -xf /tmp/xdebug.tgz -C /tmp/xdebug --strip-components=1 \
&& rm -r /tmp/xdebug.tgz \
&& docker-php-ext-configure /tmp/xdebug \
&& docker-php-ext-install /tmp/xdebug \
&& docker-php-ext-enable xdebug \
&& docker-php-source delete \
&& rm -r /tmp/xdebug
# imagick
RUN set -ex \
&& apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS imagemagick-dev libtool \
&& export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" \
&& pecl install imagick-"$IMAGICK_VERSION" \
&& docker-php-ext-enable imagick \
&& apk add --no-cache --virtual .imagick-runtime-deps imagemagick \
&& apk del .phpize-deps
#RUN docker-php-source extract \
# && curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/$PHPREDIS_VERSION.tar.gz \
# && tar xfz /tmp/redis.tar.gz \
# && rm -r /tmp/redis.tar.gz \
# && mv phpredis-$PHPREDIS_VERSION /usr/src/php/ext/redis \
# && docker-php-ext-install redis \
# && docker-php-source delete
# gearman
RUN set -xe \
; echo http://dl-cdn.alpinelinux.org/alpine/edge/main >> /etc/apk/repositories \
; echo http://dl-cdn.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories \
; echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories \
; apk update \
; apk add --update --no-cache gearman-dev gearman-libs \
; TMPDIR=$(mktemp -d) \
; cd $TMPDIR \
; curl -L https://github.com/wcgallego/pecl-gearman/archive/gearman-${GEARMAN_VERSION}.tar.gz \
| tar xzv --strip 1 \
; phpize \
; ./configure \
; make -j$(nproc) \
; make install \
; cd - \
; rm -r $TMPDIR \
; docker-php-ext-enable gearman
RUN apk del .build-deps
ENTRYPOINT ["docker-php-entrypoint"]
RUN sed -i -e 's/listen.*/listen = 0.0.0.0:9000/' /usr/local/etc/php-fpm.conf
RUN echo "expose_php=0" > /usr/local/etc/php/php.ini
CMD ["php-fpm"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment