Created
March 14, 2017 01:20
-
-
Save beatwade/63fd8165d48edeb9575cafe9102d9deb to your computer and use it in GitHub Desktop.
now dockerfile for working php-fpm5.6
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
# | |
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" | |
# | |
# PLEASE DO NOT EDIT IT DIRECTLY. | |
# | |
FROM debian:jessie | |
## update the source | |
RUN echo 'deb http://mirrors.163.com/debian/ jessie main non-free contrib \n\ | |
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib \n\ | |
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib \n\ | |
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib \n\ | |
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib \n\ | |
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib \n\ | |
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib \n\ | |
deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib'\ | |
> /etc/apt/sources.list | |
# 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 \ | |
vim \ | |
nano\ | |
--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>## | |
##</autogenerated>## | |
# Apply stack smash protection to functions using local buffers and alloca() | |
# Make PHP's main executable position-independent (improves ASLR security mechanism, and has no performance impact on x86_64) | |
# Enable optimization (-O2) | |
# Enable linker optimization (this sorts the hash buckets to improve cache locality, and is non-default) | |
# Adds GNU HASH segments to generated executables (this is used if present, and is much faster than sysv hash; in this configuration, sysv hash is also generated) | |
# https://github.com/docker-library/php/issues/272 | |
ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2" | |
ENV PHP_CPPFLAGS="$PHP_CFLAGS" | |
ENV PHP_LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" | |
ENV GPG_KEYS 0BD78B5F97500D450838F95DFE857D9A90D90EC1 6E4F6AB321FDC07F2C332E3AC2BF0BC433CFC8B3 | |
ENV PHP_VERSION 5.6.30 | |
ENV PHP_URL="https://secure.php.net/get/php-5.6.30.tar.xz/from/this/mirror" PHP_ASC_URL="https://secure.php.net/get/php-5.6.30.tar.xz.asc/from/this/mirror" | |
ENV PHP_SHA256="a363185c786432f75e3c7ff956b49c3369c3f6906a6b10459f8d1ddc22f70805" PHP_MD5="68753955a8964ae49064c6424f81eb3e" | |
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/* \ | |
\ | |
&& export CFLAGS="$PHP_CFLAGS" \ | |
CPPFLAGS="$PHP_CPPFLAGS" \ | |
LDFLAGS="$PHP_LDFLAGS" \ | |
&& 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-* docker-php-entrypoint /usr/local/bin/ | |
ENTRYPOINT ["docker-php-entrypoint"] | |
##<autogenerated>## | |
CMD ["php", "-a"] | |
##</autogenerated>## | |
##################################### | |
# Composer: | |
##################################### | |
# Install composer and add its bin to the PATH. | |
RUN curl -s http://getcomposer.org/installer | php && \ | |
echo "export PATH=${PATH}:/var/www/vendor/bin" >> ~/.bashrc && \ | |
mv composer.phar /usr/local/bin/composer | |
# Source the bash | |
RUN . ~/.bashrc | |
# Enable and configure xdebug | |
RUN pecl install xdebug | |
RUN docker-php-ext-enable xdebug | |
##################################### | |
# Node / NVM: | |
##################################### | |
# Check if NVM needs to be installed | |
ARG NODE_VERSION=stable | |
ENV NODE_VERSION ${NODE_VERSION} | |
ARG INSTALL_NODE=false | |
ENV INSTALL_NODE ${INSTALL_NODE} | |
ENV NVM_DIR /home/laradock/.nvm | |
RUN if [ ${INSTALL_NODE} = true ]; then \ | |
# Install nvm (A Node Version Manager) | |
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \ | |
. $NVM_DIR/nvm.sh && \ | |
nvm install ${NODE_VERSION} && \ | |
nvm use ${NODE_VERSION} && \ | |
nvm alias ${NODE_VERSION} && \ | |
npm install -g gulp bower vue-cli \ | |
;fi | |
# Wouldn't execute when added to the RUN statement in the above block | |
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell | |
RUN if [ ${INSTALL_NODE} = true ]; then \ | |
echo "" >> ~/.bashrc && \ | |
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \ | |
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \ | |
;fi | |
# Add NVM binaries to root's .bashrc | |
USER root | |
RUN if [ ${INSTALL_NODE} = true ]; then \ | |
echo "" >> ~/.bashrc && \ | |
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \ | |
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \ | |
;fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment