/
bear
/
cheatsheets
Обзор
Документация
Войти
/
bear
/
cheatsheets
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
4docker_etc/compose_dev_2/Dockerfile
243 строки
7 KB
Nikita Kalitin
add pair scripts
21 май 2019, 09:27
21 май 2019, 09:27
1842020
Код
Авторство
О чём код?
# based on the file "Dockerfile" from https://github.com/docker-library/php/blob/568145207f15ea0d521b09c9e8f9c65f772cee22/5.6/jessie/apache/Dockerfile # add xdebug and some soft (wget, vim) # delete section of clean src&tmp FROM debian:jessie # prevent Debian's PHP packages from being installed # https://github.com/docker-library/php/pull/542 RUN set -eux; \ { \ echo 'Package: php*'; \ echo 'Pin: release *'; \ echo 'Pin-Priority: -1'; \ } > /etc/apt/preferences.d/no-debian-php # dependencies required for running "phpize" # (see persistent deps below) ENV PHPIZE_DEPS \ autoconf \ dpkg-dev \ file \ g++ \ gcc \ libc-dev \ make \ pkg-config \ re2c # persistent / runtime deps RUN apt-get update && apt-get install -y \ $PHPIZE_DEPS \ ca-certificates \ curl \ xz-utils \ wget \ locate \ vim \ --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>## RUN apt-get update \ && apt-get install -y --no-install-recommends \ apache2 \ && rm -rf /var/lib/apt/lists/* ENV APACHE_CONFDIR /etc/apache2 ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars RUN set -ex \ \ # generically convert lines like # export APACHE_RUN_USER=www-data # into # : ${APACHE_RUN_USER:=www-data} # export APACHE_RUN_USER # so that they can be overridden at runtime ("-e APACHE_RUN_USER=...") && sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS" \ \ # setup directories and permissions && . "$APACHE_ENVVARS" \ && for dir in \ "$APACHE_LOCK_DIR" \ "$APACHE_RUN_DIR" \ "$APACHE_LOG_DIR" \ /var/www/html \ ; do \ rm -rvf "$dir" \ && mkdir -p "$dir" \ && chown -R "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \ done # Apache + PHP requires preforking Apache for best results RUN a2dismod mpm_event && a2enmod mpm_prefork # logs should go to stdout / stderr RUN set -ex \ && . "$APACHE_ENVVARS" \ && ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log" \ && ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log" \ && ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log" # PHP files should be handled by PHP, and should be preferred over any other file type RUN { \ echo '<FilesMatch \.php$>'; \ echo '\tSetHandler application/x-httpd-php'; \ echo '</FilesMatch>'; \ echo; \ echo 'DirectoryIndex disabled'; \ echo 'DirectoryIndex index.php index.html'; \ echo; \ echo '<Directory /var/www/>'; \ echo '\tOptions -Indexes'; \ echo '\tAllowOverride All'; \ echo '</Directory>'; \ } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \ && a2enconf docker-php ENV PHP_EXTRA_BUILD_DEPS apache2-dev ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2 ##</autogenerated>## 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.35 ENV PHP_URL="https://secure.php.net/get/php-5.6.35.tar.xz/from/this/mirror" PHP_ASC_URL="https://secure.php.net/get/php-5.6.35.tar.xz.asc/from/this/mirror" ENV PHP_SHA256="9985cb64cb8224c289effff5b34f670d14f838175f76daea0507d643eec650d2" PHP_MD5="" RUN set -xe; \ \ fetchDeps=' \ wget \ '; \ if ! command -v gpg > /dev/null; then \ fetchDeps="$fetchDeps \ dirmngr \ gnupg \ "; \ fi; \ 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 -rf "$GNUPGHOME"; \ fi; COPY docker-php-source /usr/local/bin/ RUN set -eux; \ \ savedAptMark="$(apt-mark showmanual)"; \ apt-get update; \ apt-get install -y --no-install-recommends \ libcurl4-openssl-dev \ libedit-dev \ libsqlite3-dev \ libssl-dev \ libxml2-dev \ zlib1g-dev \ ${PHP_EXTRA_BUILD_DEPS:-} \ ; \ rm -rf /var/lib/apt/lists/*; \ \ export \ CFLAGS="$PHP_CFLAGS" \ CPPFLAGS="$PHP_CPPFLAGS" \ LDFLAGS="$PHP_LDFLAGS" \ ; \ docker-php-source extract; \ cd /usr/src/php; \ gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \ if [ ! -d /usr/include/curl ]; then \ ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; \ fi; \ ./configure \ --build="$gnuArch" \ --with-config-file-path="$PHP_INI_DIR" \ --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" \ \ --disable-cgi \ \ --enable-ftp \ --enable-mbstring \ --enable-mysqlnd \ \ --with-curl \ --with-libedit \ --with-openssl \ --with-zlib \ \ $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit') \ --with-libdir="lib/$debMultiarch" \ \ ${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; \ cd /; \ php --version; COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/ COPY composer_install.sh /usr/local/src/ #---------------------------------- BlackChasose's adding steps ------------------------------------------------------- RUN set -eux; \ cd /usr/local/src; \ touch bclog.log; \ echo "run BlackChasose's adding steps" >> bclog.log; \ chmod +x composer_install.sh; \ ./composer_install.sh; \ wget -c -t 3 -O /usr/local/src/xdebug-2.5.4.tgz https://xdebug.org/files/xdebug-2.5.4.tgz; \ tar xvfz xdebug-2.5.4.tgz; \ cd xdebug-2.5.4; \ phpize; \ ./configure --enable-xdebug; \ make; \ make install; \ cd /usr/local/src; \ echo 'zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so ' >> 10-xdebug.ini; \ echo 'xdebug.remote_enable=1 ' >> 10-xdebug.ini; \ echo 'xdebug.remote_port=9000' >> 10-xdebug.ini; \ echo 'xdebug.profiler_enable=1' >> 10-xdebug.ini; \ echo 'xdebug.remote_connect_back=1' >> 10-xdebug.ini; \ echo 'xdebug.idekey=PHPSTORM' >> 10-xdebug.ini; \ echo 'xdebug.remote_autostart=1' >> 10-xdebug.ini; \ cp 10-xdebug.ini /usr/local/etc/php/conf.d; \ cp /usr/src/php/php.ini-development /usr/local/etc/php/php.ini; \ echo "stop BlackChasose's adding steps" >> bclog.log; #-------------------------------------------------------------------------------------------------------------------------------------------- ENTRYPOINT ["docker-php-entrypoint"] ##<autogenerated>## COPY apache2-foreground /usr/local/bin/ WORKDIR /var/www/html EXPOSE 80 CMD ["apache2-foreground"] ##</autogenerated>##