Skip to content

Instantly share code, notes, and snippets.

@jbrinley
Last active August 3, 2016 20:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jbrinley/02c113b2133ba997f4fbd5dfafd809a4 to your computer and use it in GitHub Desktop.
Save jbrinley/02c113b2133ba997f4fbd5dfafd809a4 to your computer and use it in GitHub Desktop.
PHP7 FPM dockerfile
# 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