Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -test
- - .docker
- - Dockerfile
- - vhost.conf
- - docker-compose.yml
- - ...other files
- # use version 3 of the docker compose syntax
- version: '3'
- services:
- # we named our first service 'web'
- web:
- # pass a hostname to the container (optinal)
- hostname: test
- # build a custom image
- build: ./.docker
- working_dir: /var/www
- # a name for easier reference
- image: test:1.0
- # map host port 8080 to container port 80
- ports:
- - 8080:80
- # volumes are like shared folders
- # container will see your local code changes
- volumes:
- - .:/app
- # first load the 'db' service
- depends_on:
- - db
- # make 'db' a known service/host inside of 'web'
- # use this to make a mysql connection to host 'db'
- links:
- - db
- db:
- # use a default image
- image: mysql:5.7
- # again, port mapping
- # e.g. to use Sequel Pro on our mac
- ports:
- - 13306:3306
- # the mysql image uses these to create database and users
- environment:
- MYSQL_ROOT_PASSWORD: test
- MYSQL_DATABASE: test
- MYSQL_USER: test
- MYSQL_PASSWORD: test
- #
- # NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
- #
- # PLEASE DO NOT EDIT IT DIRECTLY.
- #
- FROM alpine:3.4
- # dependencies required for running "phpize"
- # these get automatically installed and removed by "docker-php-ext-*" (unless they're already installed)
- ENV PHPIZE_DEPS
- autoconf
- dpkg-dev dpkg
- file
- g++
- gcc
- libc-dev
- make
- pkgconf
- re2c
- # persistent / runtime deps
- RUN apk add --no-cache --virtual .persistent-deps
- ca-certificates
- curl
- tar
- xz
- # https://github.com/docker-library/php/issues/494
- openssl
- # ensure www-data user exists
- RUN set -x
- && addgroup -g 82 -S www-data
- && adduser -u 82 -D -S -G www-data www-data
- # 82 is the standard uid/gid for "www-data" in Alpine
- # http://git.alpinelinux.org/cgit/aports/tree/main/apache2/apache2.pre-install?h=v3.3.2
- # http://git.alpinelinux.org/cgit/aports/tree/main/lighttpd/lighttpd.pre-install?h=v3.3.2
- # http://git.alpinelinux.org/cgit/aports/tree/main/nginx-initscripts/nginx-initscripts.pre-install?h=v3.3.2
- 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>##
- # 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.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;
- apk add --no-cache --virtual .fetch-deps
- gnupg
- ;
- 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;
- apk del .fetch-deps
- COPY docker-php-source /usr/local/bin/
- RUN set -xe
- && apk add --no-cache --virtual .build-deps
- $PHPIZE_DEPS
- coreutils
- curl-dev
- libedit-dev
- openssl-dev
- libxml2-dev
- sqlite-dev
- && 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)"
- && ./configure
- --build="$gnuArch"
- --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
- # bundled pcre does not support JIT on s390x
- # https://manpages.debian.org/stretch/libpcre3-dev/pcrejit.3.en.html#AVAILABILITY_OF_JIT_SUPPORT
- $(test "$gnuArch" = 's390x-linux-gnu' && echo '--without-pcre-jit')
- $PHP_EXTRA_CONFIGURE_ARGS
- && make -j "$(nproc)"
- && make install
- && { find /usr/local/bin /usr/local/sbin -type f -perm +0111 -exec strip --strip-all '{}' + || true; }
- && make clean
- && cd /
- && docker-php-source delete
- && runDeps="$(
- scanelf --needed --nobanner --format '%n#p' --recursive /usr/local
- | tr ',' 'n'
- | sort -u
- | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }'
- )"
- && apk add --no-cache --virtual .php-rundeps $runDeps
- && apk del .build-deps
- # https://github.com/docker-library/php/issues/443
- && pecl update-channels
- && rm -rf /tmp/pear ~/.pearrc
- COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/
- ENTRYPOINT ["docker-php-entrypoint"]
- ##<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 doesn'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>##
Add Comment
Please, Sign In to add comment