Created
March 10, 2020 08:33
-
-
Save michabbb/a19f237ffc4d126a498b5ea5363bc626 to your computer and use it in GitHub Desktop.
Docker php 7.4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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