Permalink
Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…
Cannot retrieve contributors at this time.
Cannot retrieve contributors at this time
| # | |
| # NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" | |
| # | |
| # PLEASE DO NOT EDIT IT DIRECTLY. | |
| # | |
| FROM debian:jessie | |
| # persistent / runtime deps | |
| ENV PHPIZE_DEPS \ | |
| autoconf \ | |
| file \ | |
| g++ \ | |
| gcc \ | |
| libc-dev \ | |
| make \ | |
| pkg-config \ | |
| re2c | |
| RUN apt-get update && apt-get install -y \ | |
| $PHPIZE_DEPS \ | |
| ca-certificates \ | |
| curl \ | |
| libedit2 \ | |
| libsqlite3-0 \ | |
| libxml2 \ | |
| xz-utils \ | |
| --no-install-recommends && rm -r /var/lib/apt/lists/* | |
| ENV PHP_INI_DIR /usr/local/etc/php | |
| RUN mkdir -p $PHP_INI_DIR/conf.d | |
| ##<autogenerated>## | |
| ENV PHP_EXTRA_CONFIGURE_ARGS --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data | |
| ##</autogenerated>## | |
| ENV GPG_KEYS 1A4E8B7277C42E53DBA9C7B9BCAA30EA9C0D5763 | |
| ENV PHP_VERSION 7.0.12 | |
| ENV PHP_URL="https://secure.php.net/get/php-7.0.12.tar.xz/from/this/mirror" PHP_ASC_URL="https://secure.php.net/get/php-7.0.12.tar.xz.asc/from/this/mirror" | |
| ENV PHP_SHA256="f3d6c49e1c242e5995dec15e503fde996c327eb86cd7ec45c690e93c971b83ff" PHP_MD5="bdcc4dbdac90c2a39422786653059f70" | |
| RUN set -xe; \ | |
| \ | |
| fetchDeps=' \ | |
| wget \ | |
| '; \ | |
| apt-get update; \ | |
| apt-get install -y --no-install-recommends $fetchDeps; \ | |
| rm -rf /var/lib/apt/lists/*; \ | |
| \ | |
| mkdir -p /usr/src; \ | |
| cd /usr/src; \ | |
| \ | |
| wget -O php.tar.xz "$PHP_URL"; \ | |
| \ | |
| if [ -n "$PHP_SHA256" ]; then \ | |
| echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; \ | |
| fi; \ | |
| if [ -n "$PHP_MD5" ]; then \ | |
| echo "$PHP_MD5 *php.tar.xz" | md5sum -c -; \ | |
| fi; \ | |
| \ | |
| if [ -n "$PHP_ASC_URL" ]; then \ | |
| wget -O php.tar.xz.asc "$PHP_ASC_URL"; \ | |
| export GNUPGHOME="$(mktemp -d)"; \ | |
| for key in $GPG_KEYS; do \ | |
| gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ | |
| done; \ | |
| gpg --batch --verify php.tar.xz.asc php.tar.xz; \ | |
| rm -r "$GNUPGHOME"; \ | |
| fi; \ | |
| \ | |
| apt-get purge -y --auto-remove $fetchDeps | |
| COPY docker-php-source /usr/local/bin/ | |
| RUN set -xe \ | |
| && buildDeps=" \ | |
| $PHP_EXTRA_BUILD_DEPS \ | |
| libcurl4-openssl-dev \ | |
| libedit-dev \ | |
| libsqlite3-dev \ | |
| libssl-dev \ | |
| libxml2-dev \ | |
| " \ | |
| && apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \ | |
| \ | |
| && docker-php-source extract \ | |
| && cd /usr/src/php \ | |
| && ./configure \ | |
| --with-config-file-path="$PHP_INI_DIR" \ | |
| --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ | |
| \ | |
| --disable-cgi \ | |
| \ | |
| # --enable-ftp is included here because ftp_ssl_connect() needs ftp to be compiled statically (see https://github.com/docker-library/php/issues/236) | |
| --enable-ftp \ | |
| # --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195) | |
| --enable-mbstring \ | |
| # --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself) | |
| --enable-mysqlnd \ | |
| \ | |
| --with-curl \ | |
| --with-libedit \ | |
| --with-openssl \ | |
| --with-zlib \ | |
| \ | |
| $PHP_EXTRA_CONFIGURE_ARGS \ | |
| && make -j "$(nproc)" \ | |
| && make install \ | |
| && { find /usr/local/bin /usr/local/sbin -type f -executable -exec strip --strip-all '{}' + || true; } \ | |
| && make clean \ | |
| && docker-php-source delete \ | |
| \ | |
| && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $buildDeps | |
| COPY docker-php-ext-* /usr/local/bin/ | |
| ##<autogenerated>## | |
| WORKDIR /var/www/html | |
| RUN set -ex \ | |
| && cd /usr/local/etc \ | |
| && if [ -d php-fpm.d ]; then \ | |
| # for some reason, upstream's php-fpm.conf.default has "include=NONE/etc/php-fpm.d/*.conf" | |
| sed 's!=NONE/!=!g' php-fpm.conf.default | tee php-fpm.conf > /dev/null; \ | |
| cp php-fpm.d/www.conf.default php-fpm.d/www.conf; \ | |
| else \ | |
| # PHP 5.x don't use "include=" by default, so we'll create our own simple config that mimics PHP 7+ for consistency | |
| mkdir php-fpm.d; \ | |
| cp php-fpm.conf.default php-fpm.d/www.conf; \ | |
| { \ | |
| echo '[global]'; \ | |
| echo 'include=etc/php-fpm.d/*.conf'; \ | |
| } | tee php-fpm.conf; \ | |
| fi \ | |
| && { \ | |
| echo '[global]'; \ | |
| echo 'error_log = /proc/self/fd/2'; \ | |
| echo; \ | |
| echo '[www]'; \ | |
| echo '; if we send this to /proc/self/fd/1, it never appears'; \ | |
| echo 'access.log = /proc/self/fd/2'; \ | |
| echo; \ | |
| echo 'clear_env = no'; \ | |
| echo; \ | |
| echo '; Ensure worker stdout and stderr are sent to the main error log.'; \ | |
| echo 'catch_workers_output = yes'; \ | |
| } | tee php-fpm.d/docker.conf \ | |
| && { \ | |
| echo '[global]'; \ | |
| echo 'daemonize = no'; \ | |
| echo; \ | |
| echo '[www]'; \ | |
| echo 'listen = [::]:9000'; \ | |
| } | tee php-fpm.d/zz-docker.conf | |
| EXPOSE 9000 | |
| CMD ["php-fpm"] | |
| ##</autogenerated>## |