-
-
Save nickpelton/ad944a50c20cfe610897fb4d21820fee to your computer and use it in GitHub Desktop.
PHP7 FPM dockerfile
This file contains hidden or 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
# Use Alpine Linux | |
FROM alpine:latest | |
# Environments | |
ENV TIMEZONE Etc/UTC | |
ENV PHP_MEMORY_LIMIT 512M | |
ENV MAX_UPLOAD 50M | |
ENV PHP_MAX_FILE_UPLOAD 200 | |
ENV PHP_MAX_POST 100M | |
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \ | |
apk update && \ | |
apk upgrade && \ | |
apk add --update tzdata && \ | |
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && \ | |
echo "${TIMEZONE}" > /etc/timezone && \ | |
apk add --update \ | |
bash \ | |
curl \ | |
wget \ | |
grep \ | |
php7 \ | |
php7-common \ | |
php7-mcrypt \ | |
php7-soap \ | |
php7-openssl \ | |
php7-gmp \ | |
php7-pdo_odbc \ | |
php7-json \ | |
php7-dom \ | |
php7-pdo \ | |
php7-zip \ | |
php7-mysqli \ | |
php7-sqlite3 \ | |
php7-pdo_pgsql \ | |
php7-bcmath \ | |
php7-gd \ | |
php7-odbc \ | |
php7-pdo_mysql \ | |
php7-pdo_sqlite \ | |
php7-gettext \ | |
php7-xmlreader \ | |
php7-xmlrpc \ | |
php7-bz2 \ | |
php7-iconv \ | |
php7-pdo_dblib \ | |
php7-curl \ | |
php7-ctype \ | |
php7-imap \ | |
php7-mbstring \ | |
php7-memcached \ | |
php7-xdebug \ | |
php7-phar \ | |
php7-fpm && \ | |
ln -s /usr/bin/php7 /usr/bin/php && \ | |
# Set environments | |
sed -i "s|;*daemonize\s*=\s*yes|daemonize = no|g" /etc/php7/php-fpm.conf && \ | |
sed -i "s|;*listen\s*=\s*127.0.0.1:9000|listen = 9000|g" /etc/php7/php-fpm.conf && \ | |
sed -i "s|;*listen\s*=\s*127.0.0.1:9000|listen = 9000|g" /etc/php7/php-fpm.d/www.conf && \ | |
sed -i "s|;*listen\s*=\s*/||g" /etc/php7/php-fpm.conf && \ | |
sed -i "s|;*date.timezone =.*|date.timezone = ${TIMEZONE}|i" /etc/php7/php.ini && \ | |
sed -i "s|;*memory_limit =.*|memory_limit = ${PHP_MEMORY_LIMIT}|i" /etc/php7/php.ini && \ | |
sed -i "s|;*upload_max_filesize =.*|upload_max_filesize = ${MAX_UPLOAD}|i" /etc/php7/php.ini && \ | |
sed -i "s|;*max_file_uploads =.*|max_file_uploads = ${PHP_MAX_FILE_UPLOAD}|i" /etc/php7/php.ini && \ | |
sed -i "s|;*post_max_size =.*|post_max_size = ${PHP_MAX_POST}|i" /etc/php7/php.ini && \ | |
sed -i "s|;*cgi.fix_pathinfo=.*|cgi.fix_pathinfo= 0|i" /etc/php7/php.ini && \ | |
# Cleaning up | |
mkdir /www && \ | |
apk del tzdata && \ | |
rm -rf /var/cache/apk/* | |
# Composer | |
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer | |
# WP CLI | |
RUN echo "installing WP-CLI" \ | |
&& curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ | |
&& chmod +x wp-cli.phar \ | |
&& mv wp-cli.phar /usr/local/bin/wp | |
COPY ext-xdebug.ini /etc/php7/conf.d/xdebug-local.ini | |
# Set Workdir | |
WORKDIR /srv/www | |
# Expose ports | |
EXPOSE 9000 | |
CMD ["/usr/sbin/php-fpm7"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment