From a382ea9ef7a7f75a75a834bec01c35fad1797d08 Mon Sep 17 00:00:00 2001 From: Matthew Baggett Date: Wed, 14 Aug 2019 17:34:54 +0200 Subject: [PATCH] Moving to Travis from Jenkins --- .dockerignore | 9 + .travis-ci.yml | 91 ++++ Dockerfile | 297 +++++++++++ Jenkinsfile | 465 ----------------- Makefile | 603 ---------------------- README.Template | 4 - build.yml | 542 +++++++++++++++++++ doc/.gitignore | 1 + doc/composer.json | 15 + doc/composer.lock | 308 +++++++++++ doc/gen | 131 +++++ docs | 218 -------- marshall/Dockerfile | 23 - marshall/installers/000_apt.sh | 2 +- marshall/installers/001_bash.sh | 2 +- marshall/installers/002_timezone.sh | 2 +- marshall/installers/050_runit.sh | 2 +- marshall/installers/100_cron.sh | 6 +- marshall/installers/101_rsyslog.sh | 6 +- marshall/installers/900_utils.sh | 2 +- marshall/installers/901_package_report.sh | 1 - marshall/installers/999_cleanup.sh | 2 +- marshall/installers/install | 2 +- nodejs/.gitignore | 1 - nodejs/Dockerfile | 100 ---- php+apache/.gitignore | 1 - php+apache/Dockerfile | 46 -- php+cli/.gitignore | 1 - php+cli/Dockerfile | 20 - php+nginx/.gitignore | 2 - php+nginx/Dockerfile | 62 --- php+nginx/configure-nginx.sh | 16 - php-core/Dockerfile.php56 | 58 --- php-core/Dockerfile.php70 | 58 --- php-core/Dockerfile.php71 | 58 --- php-core/Dockerfile.php72 | 57 -- php-core/Dockerfile.php73 | 57 -- test-app/Dockerfile.apache-php56 | 1 - test-app/Dockerfile.apache-php70 | 1 - test-app/Dockerfile.apache-php71 | 1 - test-app/Dockerfile.apache-php72 | 1 - test-app/Dockerfile.apache-php73 | 1 - test-app/Dockerfile.nginx-php56 | 1 - test-app/Dockerfile.nginx-php70 | 1 - test-app/Dockerfile.nginx-php71 | 1 - test-app/Dockerfile.nginx-php72 | 1 - test-app/Dockerfile.nginx-php73 | 1 - test-app/public/index.php | 2 - tester/Dockerfile | 4 - 49 files changed, 1407 insertions(+), 1880 deletions(-) create mode 100644 .dockerignore create mode 100644 .travis-ci.yml create mode 100644 Dockerfile delete mode 100644 Jenkinsfile delete mode 100644 Makefile delete mode 100644 README.Template create mode 100644 build.yml create mode 100644 doc/.gitignore create mode 100644 doc/composer.json create mode 100644 doc/composer.lock create mode 100755 doc/gen delete mode 100755 docs delete mode 100644 marshall/Dockerfile delete mode 100644 nodejs/.gitignore delete mode 100644 nodejs/Dockerfile delete mode 100644 php+apache/.gitignore delete mode 100644 php+apache/Dockerfile delete mode 100644 php+cli/.gitignore delete mode 100644 php+cli/Dockerfile delete mode 100644 php+nginx/.gitignore delete mode 100644 php+nginx/Dockerfile delete mode 100755 php+nginx/configure-nginx.sh delete mode 100644 php-core/Dockerfile.php56 delete mode 100644 php-core/Dockerfile.php70 delete mode 100644 php-core/Dockerfile.php71 delete mode 100644 php-core/Dockerfile.php72 delete mode 100644 php-core/Dockerfile.php73 delete mode 100644 test-app/Dockerfile.apache-php56 delete mode 100644 test-app/Dockerfile.apache-php70 delete mode 100644 test-app/Dockerfile.apache-php71 delete mode 100644 test-app/Dockerfile.apache-php72 delete mode 100644 test-app/Dockerfile.apache-php73 delete mode 100644 test-app/Dockerfile.nginx-php56 delete mode 100644 test-app/Dockerfile.nginx-php70 delete mode 100644 test-app/Dockerfile.nginx-php71 delete mode 100644 test-app/Dockerfile.nginx-php72 delete mode 100644 test-app/Dockerfile.nginx-php73 delete mode 100644 test-app/public/index.php delete mode 100644 tester/Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d6c7623 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +doc/ +test-app/ +tester/ +build.yml +Dockerfile +.travis-ci.yml +.gitlab-ci.yml +Makefile* +test.yml \ No newline at end of file diff --git a/.travis-ci.yml b/.travis-ci.yml new file mode 100644 index 0000000..954096a --- /dev/null +++ b/.travis-ci.yml @@ -0,0 +1,91 @@ +language: bash + +before_script: + - 'docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD $DOCKER_REGISTRY' + - 'sudo rm /usr/local/bin/docker-compose' + - 'curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-`uname -s`-`uname -m` > docker-compose' + - 'chmod +x docker-compose' + - 'sudo mv docker-compose /usr/local/bin' + - 'git rev-parse --short HEAD > marshall/marshall_version' + - 'date +%Y-%m-%d\ %H:%M:%S > marshall/marshall_build_date' + - 'hostname > marshall/marshall_build_host' + +script: + - 'docker-compose -f build.yml build $IMAGE' + +after_script: + - 'docker-compose -f build.yml push $IMAGE' + +notifications: + email: + - matthew@baggett.me + +deploy: + project_name: Gone.io Base Images + provider: pages + skip_cleanup: true + github_token: $GITHUB_TOKEN + keep_history: true + on: + branch: master + committer_from_gh: true + +env: + - IMAGE=marshall + - IMAGE=node-8 + - IMAGE=node-8-onbuild + - IMAGE=node-8-compiler + - IMAGE=node-8-compiler-onbuild + - IMAGE=node-10 + - IMAGE=node-10-onbuild + - IMAGE=node-10-compiler + - IMAGE=node-10-compiler-onbuild + - IMAGE=node-11 + - IMAGE=node-11-onbuild + - IMAGE=node-11-compiler + - IMAGE=node-11-compiler-onbuild + - IMAGE=node-12 + - IMAGE=node-12-onbuild + - IMAGE=node-12-compiler + - IMAGE=node-12-compiler-onbuild + - IMAGE=php-core-56 + - IMAGE=php-core-70 + - IMAGE=php-core-71 + - IMAGE=php-core-72 + - IMAGE=php-core-73 + - IMAGE=php-cli-56 + - IMAGE=php-cli-56-onbuild + - IMAGE=php-cli-70 + - IMAGE=php-cli-70-onbuild + - IMAGE=php-cli-71 + - IMAGE=php-cli-71-onbuild + - IMAGE=php-cli-72 + - IMAGE=php-cli-72-onbuild + - IMAGE=php-cli-73 + - IMAGE=php-cli-73-onbuild + - IMAGE=php-apache-56 + - IMAGE=php-apache-56-onbuild + - IMAGE=php-apache-70 + - IMAGE=php-apache-70-onbuild + - IMAGE=php-apache-71 + - IMAGE=php-apache-71-onbuild + - IMAGE=php-apache-72 + - IMAGE=php-apache-72-onbuild + - IMAGE=php-apache-73 + - IMAGE=php-apache-73-onbuild + - IMAGE=php-nginx-56 + - IMAGE=php-nginx-56-onbuild + - IMAGE=php-nginx-70 + - IMAGE=php-nginx-70-onbuild + - IMAGE=php-nginx-71 + - IMAGE=php-nginx-71-onbuild + - IMAGE=php-nginx-72 + - IMAGE=php-nginx-72-onbuild + - IMAGE=php-nginx-73 + - IMAGE=php-nginx-73-onbuild + - IMAGE=php-cli-latest + - IMAGE=php-cli-onbuild-latest + - IMAGE=php-apache-latest + - IMAGE=php-apache-onbuild-latest + - IMAGE=php-nginx-latest + - IMAGE=php-nginx-onbuild-latest \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..db29f8c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,297 @@ +FROM ubuntu:latest AS marshall + +MAINTAINER Matthew Baggett + +ENV DEBIAN_FRONTEND="teletype" \ + TERM=xterm-256color \ + COMPOSER_ALLOW_SUPERUSER=1 \ + COLOUR_FAIL='\e[31m' \ + COLOUR_SUCCESS='\e[32m' \ + COLOUR_NONE='\e[39m' \ + DEFAULT_TZ='Europe/London' + +CMD ["runsvdir", "-P", "/etc/service"] + +WORKDIR /app + +COPY ./marshall/ / + +RUN chmod +x /installers/install && \ + mv /marshall_* /etc && \ + /installers/install && \ + rm -rf /installers + +FROM marshall AS php-core +ARG PHP_PACKAGES +COPY php-core/install-report.sh /usr/bin/install-report +RUN apt-get -qq update && \ + apt-get -yq install --no-install-recommends \ + python3-software-properties \ + software-properties-common \ + && \ + add-apt-repository -y ppa:ondrej/php && \ + apt-get -qq update && \ + apt-get -yq install --no-install-recommends $PHP_PACKAGES &&\ + apt-get remove -yq \ + software-properties-common \ + python-apt-common \ + python3-software-properties \ + python3.5 python3.5-minimal libpython3.5-minimal \ + && \ + apt-get autoremove -y && \ + rm -rf \ + /usr/bin/mysqlslap \ + /usr/bin/mysqldump \ + /usr/bin/mysqlpump \ + /usr/bin/mysql_embedded \ + && \ + curl -sS https://getcomposer.org/installer | php && \ + mv composer.phar /usr/local/bin/composer && \ + composer global require -q hirak/prestissimo && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ + chmod +x /usr/bin/install-report && \ + /usr/bin/install-report + +FROM php-core AS php-cli +RUN apt-get -qq update && \ + apt-get -qy upgrade && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Install a funky cool repl. +RUN composer global require -q psy/psysh:@stable && \ + ln -s /root/.composer/vendor/psy/psysh/bin/psysh /usr/local/bin/repl && \ + /usr/local/bin/repl -v + +COPY php+cli/psysh-config.php /root/.config/psysh/config.php + +FROM php-cli AS php-cli-onbuild +# On build, add anything in with Dockerfile into /app +ONBUILD ADD ./ /app + +# If composer.json/composer.lock exist, do a composer install. +ONBUILD RUN composer install; exit 0 +ONBUILD RUN composer dumpautoload -o; exit 0 +ONBUILD RUN /usr/bin/install-report + +FROM php-core AS php-nginx +ARG PHP_VERSION +ENV PHPFPM_MAX_CHILDREN=25 +COPY php+nginx /conf + +RUN apt-get -qq update && \ + apt-get -yqq install --no-install-recommends \ + lsb-core \ + gnupg \ + && \ + sh -c 'echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu $(lsb_release -sc) main" \ + > /etc/apt/sources.list.d/nginx-stable.list' && \ + apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C && \ + apt-get -qq update && \ + apt-get -yqq install --no-install-recommends \ + nginx \ + php$PHP_VERSION-fpm \ + && \ + apt-get remove -yq \ + lsb-core \ + cups-common \ + software-properties-common \ + python-apt-common \ + python3-software-properties \ + python3.5 python3.5-minimal libpython3.5-minimal \ + && \ + apt-get autoremove -y && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ + sed -i "s/cgi.fix_pathinfo.*/cgi.fix_pathinfo=0/g" /etc/php/$PHP_VERSION/fpm/php.ini && \ + sed -i "s/upload_max_filesize.*/upload_max_filesize = 1024M/g" /etc/php/$PHP_VERSION/fpm/php.ini && \ + sed -i "s/post_max_size.*/post_max_size = 1024M/g" /etc/php/$PHP_VERSION/fpm/php.ini && \ + sed -i "s/max_execution_time.*/max_execution_time = 0/g" /etc/php/$PHP_VERSION/fpm/php.ini && \ + sed -i "s/variables_order.*/variables_order = \"EGPCS\"/g" /etc/php/$PHP_VERSION/fpm/php.ini && \ + sed -i "s/error_reporting.*/error_reporting = E_ALL \& \~E_DEPRECATED \& \~E_STRICT \& \~E_CORE_WARNING/g" /etc/php/$PHP_VERSION/fpm/php.ini && \ + cp /etc/php/$PHP_VERSION/fpm/php.ini /etc/php/$PHP_VERSION/cli/php.ini && \ + if test "$PHP_VERSION" = "5.6" ; then \ + echo "Skipping clear_env"; \ + else \ + echo "clear_env=no" >> /etc/php/$PHP_VERSION/fpm/php-fpm.conf; \ + echo "clear_env=no" >> /etc/php/$PHP_VERSION/fpm/pool.d/www.ini; \ + fi && \ + mkdir /run/php && \ + rm -fr /var/www/html && \ + ln -s /app /var/www/html && \ + mv /conf/NginxDefault /etc/nginx/sites-enabled/default && \ + mkdir /etc/service/nginx && \ + mkdir /etc/service/php-fpm && \ + mv /conf/nginx.runit /etc/service/nginx/run && \ + mv /conf/php-fpm.runit /etc/service/php-fpm/run && \ + chmod +x /etc/service/*/run && \ + rm -R /conf && \ + sed -i "s/{{PHP}}/$PHP_VERSION/g" /etc/nginx/sites-enabled/default && \ + sed -i "s/{{PHP}}/$PHP_VERSION/g" /etc/service/php-fpm/run && \ + # Enable status panel + sed -i -e "s|;pm.status_path|pm.status_path|g" /etc/php/*/fpm/pool.d/www.conf && \ + # Using environment variables in config files works, it would seem. Neat! + sed -i -e "s|pm.max_children = 5|pm.max_children = \${PHPFPM_MAX_CHILDREN}|g" /etc/php/*/fpm/pool.d/www.conf + +# Expose ports. +EXPOSE 80 + +# Create a healthcheck that makes sure our httpd is up +HEALTHCHECK --interval=30s --timeout=3s \ + CMD curl -f http://localhost/ || exit 1 + +FROM php-nginx AS php-nginx-onbuild +# On build, add anything in with Dockerfile into /app +ONBUILD ADD ./ /app + +# If composer.json/composer.lock exist, do a composer install. +ONBUILD RUN composer install; exit 0 +ONBUILD RUN composer dumpautoload -o; exit 0 +ONBUILD RUN /usr/bin/install-report + +FROM php-core AS php-apache +RUN apt-get -qq update && \ + apt-get -yq install --no-install-recommends \ + apache2 \ + libapache2-mod-php$PHP_VERSION \ + && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ + \ + sed -i "s/upload_max_filesize.*/upload_max_filesize = 1024M/g" /etc/php/$PHP_VERSION/apache2/php.ini && \ + sed -i "s/post_max_size.*/post_max_size = 1024M/g" /etc/php/$PHP_VERSION/apache2/php.ini && \ + sed -i "s/max_execution_time.*/max_execution_time = 0/g" /etc/php/$PHP_VERSION/apache2/php.ini && \ + sed -i "s/variables_order.*/variables_order = \"EGPCS\"/g" /etc/php/$PHP_VERSION/apache2/php.ini && \ + sed -i "s/error_reporting.*/error_reporting = E_ALL \& \~E_DEPRECATED \& \~E_STRICT \& \~E_CORE_WARNING/g" /etc/php/$PHP_VERSION/apache2/php.ini && \ + cp /etc/php/$PHP_VERSION/apache2/php.ini /etc/php/$PHP_VERSION/cli/php.ini && \ + sed -i "s/ServerSignature On/ServerSignature Off/g" /etc/apache2/conf-enabled/security.conf && \ + sed -i "s/ServerTokens OS/ServerTokens Prod/g" /etc/apache2/conf-enabled/security.conf + +# Expose ports. +EXPOSE 80 + +# Create a healthcheck that makes sure our httpd is up +HEALTHCHECK --interval=30s --timeout=3s \ + CMD curl -f http://localhost/ || exit 1 + +COPY php+apache /conf +RUN rm -fr /var/www/html && \ + ln -s /app /var/www/html && \ + mv /conf/ApacheConfig.conf /etc/apache2/sites-enabled/000-default.conf && \ + mv /conf/envvars /etc/apache2/ && \ + mv /conf/apache2.conf /etc/apache2/ && \ + mkdir -p /etc/service/apache && \ + mkdir -p /etc/service/show_logs && \ + mv /conf/apache.runit /etc/service/apache/run && \ + mv /conf/show_logs.runit /etc/service/show_logs/run && \ + chmod +x /etc/service/*/run && \ + rm /conf && \ + a2enmod rewrite + +FROM php-apache AS php-apache-onbuild +# On build, add anything in with Dockerfile into /app +ONBUILD ADD ./ /app + +# If composer.json/composer.lock exist, do a composer install. +ONBUILD RUN composer install --ignore-platform-reqs; exit 0 +ONBUILD RUN composer dumpautoload -o; exit 0 +ONBUILD RUN /usr/bin/install-report + +FROM marshall AS nodejs + +ARG NODE_VERSION +ARG YARN_VERSION +ARG PATH="/app/node_modules/.bin:${PATH}" + +RUN mkdir ~/.gnupg && \ + echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf && \ + apt-get -qq update && \ + apt-get -yq install --no-install-recommends \ + lsb-core \ + gnupg \ + && \ + \ + ARCH= && \ + dpkgArch="$(dpkg --print-architecture)" && \ + case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ + && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ + && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ + && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ + && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ + && set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ + && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ + && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ + && mkdir -p /opt \ + && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \ + && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \ + && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \ + && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ + \ + && apt-get autoremove -y \ + && apt-get clean \ + && rm -rf \ + /var/lib/apt/lists/* \ + /tmp/* \ + /var/tmp/* + +FROM nodejs AS nodejs-compiler + +RUN apt-get -qq update && \ + apt-get -yq install --no-install-recommends \ + python \ + build-essential \ + && \ + apt-get autoremove -y && \ + apt-get clean && \ + rm -rf \ + /var/lib/apt/lists/* \ + /tmp/* \ + /var/tmp/* + +FROM nodejs AS nodejs-onbuild + +ONBUILD ADD ./ /app + +FROM nodejs-compiler AS nodejs-compiler-onbuild + +ONBUILD ADD ./ /app + diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 94efca3..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,465 +0,0 @@ -pipeline { - agent any - options { - disableConcurrentBuilds() - timeout(time: 1, unit: 'HOURS') - } - stages { - stage('Prepare') { - steps { - sh 'printenv' - telegramSend "Pipeline STARTED: `${env.JOB_NAME}`\n\nAuthor: `${env.GIT_AUTHOR_NAME} <${env.GIT_AUTHOR_EMAIL}>`\nBuild Number: ${env.BUILD_NUMBER}\n\n${env.RUN_DISPLAY_URL}" - } - } - stage('Build Marshall') { - parallel { - stage('Marshall') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make prepare' - sh 'make build-marshall' - } - } - stage('Marshall') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make prepare' - sh 'make build-marshall' - sh 'make push-marshall' - } - } - } - } - stage('Build PHP Runtime Containers'){ - parallel { - stage('PHP 5.6'){ - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-core-5.6' - sh 'make push-core-5.6' - } - } - stage('PHP 5.6'){ - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-core-5.6' - sh 'make push-core-5.6' - } - } - stage('PHP 7.0'){ - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-core-7.0' - } - } - stage('PHP 7.0'){ - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-core-7.0' - sh 'make push-core-7.0' - } - } - stage('PHP 7.1'){ - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-core-7.1' - } - } - stage('PHP 7.1'){ - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-core-7.1' - sh 'make push-core-7.1' - } - } - stage('PHP 7.2'){ - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-core-7.2' - } - } - stage('PHP 7.2'){ - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-core-7.2' - sh 'make push-core-7.2' - } - } - stage('PHP 7.3'){ - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-core-7.3' - } - } - stage('PHP 7.3'){ - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-core-7.3' - sh 'make push-core-7.3' - } - } - stage('Node 8'){ - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-node-8' - sh 'make tag-node-8' - } - } - stage('Node 8'){ - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-node-8' - sh 'make tag-node-8' - sh 'make push-node-8' - } - } - stage('Node 10'){ - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-node-10' - sh 'make tag-node-10' - } - } - stage('Node 10'){ - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-node-10' - sh 'make tag-node-10' - sh 'make push-node-10' - } - } - stage('Node 11'){ - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-node-11' - sh 'make tag-node-11' - } - } - stage('Node 11'){ - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-node-11' - sh 'make tag-node-11' - sh 'make push-node-11' - } - } - stage('Node 12'){ - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-node-12' - sh 'make tag-node-12' - } - } - stage('Node 12'){ - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-node-12' - sh 'make tag-node-12' - sh 'make push-node-12' - } - } - } - } - stage('Build Derived PHP Containers'){ - parallel { - stage('CLI PHP 5.6') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-cli-5.6' - } - } - stage('CLI PHP 5.6') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-cli-5.6' - sh 'make push-cli-5.6' - } - } - stage('Nginx PHP 5.6') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-nginx-5.6' - } - } - stage('Nginx PHP 5.6') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-nginx-5.6' - sh 'make push-nginx-5.6' - } - } - stage('Apache PHP 5.6') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-apache-5.6' - } - } - stage('Apache PHP 5.6') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-apache-5.6' - sh 'make push-apache-5.6' - } - } - - stage('CLI PHP 7.0') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-cli-7.0' - } - } - stage('CLI PHP 7.0') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-cli-7.0' - sh 'make push-cli-7.0' - } - } - stage('Nginx PHP 7.0') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-nginx-7.0' - } - } - stage('Nginx PHP 7.0') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-nginx-7.0' - sh 'make push-nginx-7.0' - } - } - stage('Apache PHP 7.0') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-apache-7.0' - } - } - stage('Apache PHP 7.0') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-apache-7.0' - sh 'make push-apache-7.0' - } - } - - stage('CLI PHP 7.1') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-cli-7.1' - } - } - stage('CLI PHP 7.1') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-cli-7.1' - sh 'make push-cli-7.1' - } - } - stage('Nginx PHP 7.1') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-nginx-7.1' - } - } - stage('Nginx PHP 7.1') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-nginx-7.1' - sh 'make push-nginx-7.1' - } - } - stage('Apache PHP 7.1') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-apache-7.1' - } - } - stage('Apache PHP 7.1') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-apache-7.1' - sh 'make push-apache-7.1' - } - } - - stage('CLI PHP 7.2') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-cli-7.2' - } - } - stage('CLI PHP 7.2') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-cli-7.2' - sh 'make push-cli-7.2' - } - } - stage('Nginx PHP 7.2') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-nginx-7.2' - } - } - stage('Nginx PHP 7.2') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-nginx-7.2' - sh 'make push-nginx-7.2' - } - } - stage('Apache PHP 7.2') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-apache-7.2' - } - } - stage('Apache PHP 7.2') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-apache-7.2' - sh 'make push-apache-7.2' - } - } - - stage('CLI PHP 7.3') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-cli-7.3' - } - } - stage('CLI PHP 7.3') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-cli-7.3' - sh 'make push-cli-7.3' - } - } - stage('Nginx PHP 7.3') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-nginx-7.3' - } - } - stage('Nginx PHP 7.3') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-nginx-7.3' - sh 'make push-nginx-7.3' - } - } - stage('Apache PHP 7.3') { - agent { node { label 'x86' } } - when { not { branch 'master' } } - steps { - sh 'make build-php-apache-7.3' - } - } - stage('Apache PHP 7.3') { - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make build-php-apache-7.3' - sh 'make push-apache-7.3' - } - } - } - } - - stage('Test Containers'){ - parallel { - stage('All Nginx Containers'){ - agent { node { label 'x86' } } - steps { - sh 'make test-php-nginx-5.6' - sh 'make test-php-nginx-7.0' - sh 'make test-php-nginx-7.1' - sh 'make test-php-nginx-7.2' - sh 'make test-php-nginx-7.3' - } - } - stage('All Apache Containers'){ - agent { node { label 'x86' } } - steps { - sh 'make test-php-apache-5.6' - sh 'make test-php-apache-7.0' - sh 'make test-php-apache-7.1' - sh 'make test-php-apache-7.2' - sh 'make test-php-apache-7.3' - } - } - } - } - - stage('Aliases'){ - agent { node { label 'x86' } } - when { branch 'master' } - steps { - sh 'make aliases' - } - } - } - post { - success{ - telegramSend "Pipeline SUCCESS: `${env.JOB_NAME}`\n\nAuthor: `${env.GIT_AUTHOR_NAME} <${env.GIT_AUTHOR_EMAIL}>`\nBuild Number: ${env.BUILD_NUMBER}\n\n${env.RUN_DISPLAY_URL}" - } - aborted{ - telegramSend "Pipeline ABORTED: `${env.JOB_NAME}`\n\nAuthor: `${env.GIT_AUTHOR_NAME} <${env.GIT_AUTHOR_EMAIL}>`\nBuild Number: ${env.BUILD_NUMBER}\n\n${env.RUN_DISPLAY_URL}" - } - failure{ - telegramSend "Pipeline FAIL: `${env.JOB_NAME}`\n\nAuthor: `${env.GIT_AUTHOR_NAME} <${env.GIT_AUTHOR_EMAIL}>`\nBuild Number: ${env.BUILD_NUMBER}\n\n${env.RUN_DISPLAY_URL}" - } - cleanup { - sh 'make cleanup' - cleanWs() - } - } -} diff --git a/Makefile b/Makefile deleted file mode 100644 index c74c51c..0000000 --- a/Makefile +++ /dev/null @@ -1,603 +0,0 @@ -DATE=`date +%Y-%m-%d` -ARCH = x86 -BASEIMAGE=ubuntu:bionic -PHUSION_VERSION=0.11 -SHELL := /bin/bash - -print-% : ; @echo $* = $($*) - -all: - $(MAKE) purge - $(MAKE) prepare - $(MAKE) build - $(MAKE) docs - $(MAKE) push - -purge: - docker system prune -af - -prepare: - git rev-parse --short HEAD > marshall/marshall_version - date +%Y-%m-%d\ %H:%M:%S > marshall/marshall_build_date - hostname > marshall/marshall_build_host - -cleanup: - -docker rmi $(docker image ls | grep gone/php | sed 's/ \+ /\t/g' | cut -d$'\t' -f2 | grep -v "" | xargs -n1 echo "gone/php:" | sed 's/ //g') - -docker rmi $(docker image ls | grep gone/node | sed 's/ \+ /\t/g' | cut -d$'\t' -f2 | grep -v "" | xargs -n1 echo "gone/node:" | sed 's/ //g') - -build-base: prepare build-marshall - -build-marshall: - docker build --pull -t gone/marshall:latest -f ./marshall/Dockerfile ./marshall - docker tag gone/marshall:latest gone/marshall:$(DATE) - docker tag gone/marshall:latest gone/marshall:$(ARCH) - docker tag gone/marshall:latest gone/marshall:$(ARCH)-$(DATE) - -build-php-core-5.6: - docker build --pull -t gone/php:core-5.6 -f ./php-core/Dockerfile.php56 ./php-core - docker tag gone/php:core-5.6 gone/php:core-5.6-$(ARCH) - docker tag gone/php:core-5.6 gone/php:core-5.6-$(ARCH)-$(DATE) - -build-php-core-7.0: - docker build --pull -t gone/php:core-7.0 -f ./php-core/Dockerfile.php70 ./php-core - docker tag gone/php:core-7.0 gone/php:core-7.0-$(ARCH) - docker tag gone/php:core-7.0 gone/php:core-7.0-$(ARCH)-$(DATE) - -build-php-core-7.1: - docker build --pull -t gone/php:core-7.1 -f ./php-core/Dockerfile.php71 ./php-core - docker tag gone/php:core-7.1 gone/php:core-7.1-$(ARCH) - docker tag gone/php:core-7.1 gone/php:core-7.1-$(ARCH)-$(DATE) - -build-php-core-7.2: - docker build --pull -t gone/php:core-7.2 -f ./php-core/Dockerfile.php72 ./php-core - docker tag gone/php:core-7.2 gone/php:core-7.2-$(ARCH) - docker tag gone/php:core-7.2 gone/php:core-7.2-$(ARCH)-$(DATE) - -build-php-core-7.3: - docker build --pull -t gone/php:core-7.3 -f ./php-core/Dockerfile.php73 ./php-core - docker tag gone/php:core-7.3 gone/php:core-7.3-$(ARCH) - docker tag gone/php:core-7.3 gone/php:core-7.3-$(ARCH)-$(DATE) - -tag-php-core: - docker tag gone/php:core-7.3 gone/php:core-$(ARCH) - docker tag gone/php:core-7.3 gone/php:core - -build-php-core: build-php-core-5.6 build-php-core-7.0 build-php-core-7.1 build-php-core-7.2 build-php-core-7.3 tag-php-core - -build-php-cli-5.6: - sed 's|FROM .*|FROM gone/php:core-5.6|g' ./php+cli/Dockerfile > ./php+cli/Dockerfile.php56 - docker build --pull -t gone/php:cli-php5.6 -f ./php+cli/Dockerfile.php56 ./php+cli - docker tag gone/php:cli-php5.6 gone/php:cli-php5.6-$(ARCH) - docker tag gone/php:cli-php5.6 gone/php:cli-php5.6-$(ARCH)-$(DATE) - rm ./php+cli/Dockerfile.php56 - -build-php-cli-7.0: - sed 's|FROM .*|FROM gone/php:core-7.0|g' ./php+cli/Dockerfile > ./php+cli/Dockerfile.php70 - docker build --pull -t gone/php:cli-php7.0 -f ./php+cli/Dockerfile.php70 ./php+cli - docker tag gone/php:cli-php7.0 gone/php:cli-php7.0-$(ARCH) - docker tag gone/php:cli-php7.0 gone/php:cli-php7.0-$(ARCH)-$(DATE) - rm ./php+cli/Dockerfile.php70 - -build-php-cli-7.1: - sed 's|FROM .*|FROM gone/php:core-7.1|g' ./php+cli/Dockerfile > ./php+cli/Dockerfile.php71 - docker build --pull -t gone/php:cli-php7.1 -f ./php+cli/Dockerfile.php71 ./php+cli - docker tag gone/php:cli-php7.1 gone/php:cli-php7.1-$(ARCH) - docker tag gone/php:cli-php7.1 gone/php:cli-php7.1-$(ARCH)-$(DATE) - rm ./php+cli/Dockerfile.php71 - -build-php-cli-7.2: - sed 's|FROM .*|FROM gone/php:core-7.2|g' ./php+cli/Dockerfile > ./php+cli/Dockerfile.php72 - docker build --pull -t gone/php:cli-php7.2 -f ./php+cli/Dockerfile.php72 ./php+cli - docker tag gone/php:cli-php7.2 gone/php:cli-php7.2-$(ARCH) - docker tag gone/php:cli-php7.2 gone/php:cli-php7.2-$(ARCH)-$(DATE) - rm ./php+cli/Dockerfile.php72 - -build-php-cli-7.3: - sed 's|FROM .*|FROM gone/php:core-7.3|g' ./php+cli/Dockerfile > ./php+cli/Dockerfile.php73 - docker build --pull -t gone/php:cli-php7.3 -f ./php+cli/Dockerfile.php73 ./php+cli - docker tag gone/php:cli-php7.3 gone/php:cli-php7.3-$(ARCH) - docker tag gone/php:cli-php7.3 gone/php:cli-php7.3-$(ARCH)-$(DATE) - rm ./php+cli/Dockerfile.php73 - - -build-php-cli: build-php-cli-7.0 build-php-cli-7.1 build-php-cli-7.2 build-php-cli-7.3 tag-php-cli - -build-php-apache-5.6: - sed 's|FROM .*|FROM gone/php:core-5.6|g' ./php+apache/Dockerfile > ./php+apache/Dockerfile.php56 - sed -i 's/{{PHPVERSION}}/5.6/g' ./php+apache/Dockerfile.php56 - docker build --pull -t gone/php:apache-php5.6 -f ./php+apache/Dockerfile.php56 ./php+apache - docker tag gone/php:apache-php5.6 gone/php:apache-php5.6-$(DATE) - docker tag gone/php:apache-php5.6 gone/php:apache-php5.6-$(ARCH)-$(DATE) - docker tag gone/php:apache-php5.6 gone/php:apache-php5.6-$(ARCH) - rm ./php+apache/Dockerfile.php56 - -build-php-apache-7.0: - sed 's|FROM .*|FROM gone/php:core-7.0|g' ./php+apache/Dockerfile > ./php+apache/Dockerfile.php70 - sed -i 's/{{PHPVERSION}}/7.0/g' ./php+apache/Dockerfile.php70 - docker build --pull -t gone/php:apache-php7.0 -f ./php+apache/Dockerfile.php70 ./php+apache - docker tag gone/php:apache-php7.0 gone/php:apache-php7.0-$(DATE) - docker tag gone/php:apache-php7.0 gone/php:apache-php7.0-$(ARCH)-$(DATE) - docker tag gone/php:apache-php7.0 gone/php:apache-php7.0-$(ARCH) - rm ./php+apache/Dockerfile.php70 - -build-php-apache-7.1: - sed 's|FROM .*|FROM gone/php:core-7.1|g' ./php+apache/Dockerfile > ./php+apache/Dockerfile.php71 - sed -i 's/{{PHPVERSION}}/7.1/g' ./php+apache/Dockerfile.php71 - docker build --pull -t gone/php:apache-php7.1 -f ./php+apache/Dockerfile.php71 ./php+apache - docker tag gone/php:apache-php7.1 gone/php:apache-php7.1-$(DATE) - docker tag gone/php:apache-php7.1 gone/php:apache-php7.1-$(ARCH)-$(DATE) - docker tag gone/php:apache-php7.1 gone/php:apache-php7.1-$(ARCH) - rm ./php+apache/Dockerfile.php71 - -build-php-apache-7.2: - sed 's|FROM .*|FROM gone/php:core-7.2|g' ./php+apache/Dockerfile > ./php+apache/Dockerfile.php72 - sed -i 's/{{PHPVERSION}}/7.2/g' ./php+apache/Dockerfile.php72 - docker build --pull -t gone/php:apache-php7.2 -f ./php+apache/Dockerfile.php72 ./php+apache - docker tag gone/php:apache-php7.2 gone/php:apache-php7.2-$(DATE) - docker tag gone/php:apache-php7.2 gone/php:apache-php7.2-$(ARCH)-$(DATE) - docker tag gone/php:apache-php7.2 gone/php:apache-php7.2-$(ARCH) - rm ./php+apache/Dockerfile.php72 - -build-php-apache-7.3: - sed 's|FROM .*|FROM gone/php:core-7.3|g' ./php+apache/Dockerfile > ./php+apache/Dockerfile.php73 - sed -i 's/{{PHPVERSION}}/7.3/g' ./php+apache/Dockerfile.php73 - docker build --pull -t gone/php:apache-php7.3 -f ./php+apache/Dockerfile.php73 ./php+apache - docker tag gone/php:apache-php7.3 gone/php:apache-php7.3-$(DATE) - docker tag gone/php:apache-php7.3 gone/php:apache-php7.3-$(ARCH)-$(DATE) - docker tag gone/php:apache-php7.3 gone/php:apache-php7.3-$(ARCH) - rm ./php+apache/Dockerfile.php73 - -tag-apache: - docker run gone/php:apache-php7.0 php --version | head -n1 | cut -d ' ' -f2 | cut -d '+' -f1 - docker run gone/php:apache-php7.1 php --version | head -n1 | cut -d ' ' -f2 | cut -d '+' -f1 - docker run gone/php:apache-php7.2 php --version | head -n1 | cut -d ' ' -f2 | cut -d '+' -f1 - docker run gone/php:apache-php7.3 php --version | head -n1 | cut -d ' ' -f2 | cut -d '+' -f1 - docker tag gone/php:apache-php7.3 gone/php:apache-$(ARCH)-$(DATE) - docker tag gone/php:apache-php7.3 gone/php:apache-$(ARCH) - docker tag gone/php:apache-php7.3 gone/php:apache - -test-php-apache-5.6: - docker-compose -f test.yml -p apache56 up -d apache-php56-instance - sleep 5; - docker-compose -f test.yml -p apache56 run apache-php56-test | grep "Requests per second" - docker-compose -f test.yml -p apache56 down -v; - -test-php-apache-7.0: - docker-compose -f test.yml -p apache70 up -d apache-php70-instance - sleep 5; - docker-compose -f test.yml -p apache70 run apache-php70-test | grep "Requests per second" - docker-compose -f test.yml -p apache70 down -v; - -test-php-apache-7.1: - docker-compose -f test.yml -p apache71 up -d apache-php71-instance - sleep 5; - docker-compose -f test.yml -p apache71 run apache-php71-test | grep "Requests per second" - docker-compose -f test.yml -p apache71 down -v; - -test-php-apache-7.2: - docker-compose -f test.yml -p apache72 up -d apache-php72-instance - sleep 5; - docker-compose -f test.yml -p apache72 run apache-php72-test | grep "Requests per second" - docker-compose -f test.yml -p apache72 down -v; - -test-php-apache-7.3: - docker-compose -f test.yml -p apache73 up -d apache-php73-instance - sleep 5; - docker-compose -f test.yml -p apache73 run apache-php73-test | grep "Requests per second" - docker-compose -f test.yml -p apache73 down -v; - -build-php-apache: build-php-apache-5.6 build-php-apache-7.0 build-php-apache-7.1 build-php-apache-7.2 build-php-apache-7.3 tag-apache - -build-php-nginx-5.6: - sed 's|FROM .*|FROM gone/php:core-5.6|g' ./php+nginx/Dockerfile > ./php+nginx/Dockerfile.php56 - sed -i 's/{{PHPVERSION}}/5.6/g' ./php+nginx/Dockerfile.php56 - sed 's/{{PHPVERSION}}/5.6/g' ./php+nginx/configure-nginx.sh > ./php+nginx/configure-nginx.php5.6.sh - docker build --pull -t gone/php:nginx-php5.6 -f ./php+nginx/Dockerfile.php56 ./php+nginx - docker tag gone/php:nginx-php5.6 gone/php:nginx-php5.6-$(DATE) - docker tag gone/php:nginx-php5.6 gone/php:nginx-php5.6-$(ARCH)-$(DATE) - docker tag gone/php:nginx-php5.6 gone/php:nginx-php5.6-$(ARCH) - rm ./php+nginx/Dockerfile.php56 - -build-php-nginx-7.0: - sed 's|FROM .*|FROM gone/php:core-7.0|g' ./php+nginx/Dockerfile > ./php+nginx/Dockerfile.php70 - sed -i 's/{{PHPVERSION}}/7.0/g' ./php+nginx/Dockerfile.php70 - sed 's/{{PHPVERSION}}/7.0/g' ./php+nginx/configure-nginx.sh > ./php+nginx/configure-nginx.php7.0.sh - docker build --pull -t gone/php:nginx-php7.0 -f ./php+nginx/Dockerfile.php70 ./php+nginx - docker tag gone/php:nginx-php7.0 gone/php:nginx-php7.0-$(DATE) - docker tag gone/php:nginx-php7.0 gone/php:nginx-php7.0-$(ARCH)-$(DATE) - docker tag gone/php:nginx-php7.0 gone/php:nginx-php7.0-$(ARCH) - rm ./php+nginx/Dockerfile.php70 - -build-php-nginx-7.1: - sed 's|FROM .*|FROM gone/php:core-7.1|g' ./php+nginx/Dockerfile > ./php+nginx/Dockerfile.php71 - sed -i 's/{{PHPVERSION}}/7.1/g' ./php+nginx/Dockerfile.php71 - sed 's/{{PHPVERSION}}/7.1/g' ./php+nginx/configure-nginx.sh > ./php+nginx/configure-nginx.php7.1.sh - docker build --pull -t gone/php:nginx-php7.1 -f ./php+nginx/Dockerfile.php71 ./php+nginx - docker tag gone/php:nginx-php7.1 gone/php:nginx-php7.1-$(DATE) - docker tag gone/php:nginx-php7.1 gone/php:nginx-php7.1-$(ARCH)-$(DATE) - docker tag gone/php:nginx-php7.1 gone/php:nginx-php7.1-$(ARCH) - rm ./php+nginx/Dockerfile.php71 - -build-php-nginx-7.2: - sed 's|FROM .*|FROM gone/php:core-7.2|g' ./php+nginx/Dockerfile > ./php+nginx/Dockerfile.php72 - sed -i 's/{{PHPVERSION}}/7.2/g' ./php+nginx/Dockerfile.php72 - sed 's/{{PHPVERSION}}/7.2/g' ./php+nginx/configure-nginx.sh > ./php+nginx/configure-nginx.php7.2.sh - docker build --pull -t gone/php:nginx-php7.2 -f ./php+nginx/Dockerfile.php72 ./php+nginx - docker tag gone/php:nginx-php7.2 gone/php:nginx-php7.2-$(DATE) - docker tag gone/php:nginx-php7.2 gone/php:nginx-php7.2-$(ARCH)-$(DATE) - docker tag gone/php:nginx-php7.2 gone/php:nginx-php7.2-$(ARCH) - rm ./php+nginx/Dockerfile.php72 - -build-php-nginx-7.3: - sed 's|FROM .*|FROM gone/php:core-7.3|g' ./php+nginx/Dockerfile > ./php+nginx/Dockerfile.php73 - sed -i 's/{{PHPVERSION}}/7.3/g' ./php+nginx/Dockerfile.php73 - sed 's/{{PHPVERSION}}/7.3/g' ./php+nginx/configure-nginx.sh > ./php+nginx/configure-nginx.php7.3.sh - docker build --pull -t gone/php:nginx-php7.3 -f ./php+nginx/Dockerfile.php73 ./php+nginx - docker tag gone/php:nginx-php7.3 gone/php:nginx-php7.3-$(DATE) - docker tag gone/php:nginx-php7.3 gone/php:nginx-php7.3-$(ARCH)-$(DATE) - docker tag gone/php:nginx-php7.3 gone/php:nginx-php7.3-$(ARCH) - rm ./php+nginx/Dockerfile.php73 - -tag-nginx: - docker run gone/php:nginx-php5.6 php --version - docker run gone/php:nginx-php7.0 php --version - docker run gone/php:nginx-php7.1 php --version - docker run gone/php:nginx-php7.2 php --version - docker run gone/php:nginx-php7.3 php --version - docker tag gone/php:nginx-php7.3 gone/php:nginx-$(DATE) - docker tag gone/php:nginx-php7.3 gone/php:nginx-$(ARCH)-$(DATE) - docker tag gone/php:nginx-php7.3 gone/php:nginx-$(ARCH) - docker tag gone/php:nginx-php7.3 gone/php:nginx - -test-php-nginx-5.6: - docker-compose -f test.yml -p nginx56 up -d nginx-php56-instance - sleep 5; - docker-compose -f test.yml -p nginx56 run nginx-php56-test | grep "Requests per second" - docker-compose -f test.yml -p nginx56 down -v; - -test-php-nginx-7.0: - docker-compose -f test.yml -p nginx70 up -d nginx-php70-instance - sleep 5; - docker-compose -f test.yml -p nginx70 run nginx-php70-test | grep "Requests per second" - docker-compose -f test.yml -p nginx70 down -v; - -test-php-nginx-7.1: - docker-compose -f test.yml -p nginx71 up -d nginx-php71-instance - sleep 5; - docker-compose -f test.yml -p nginx71 run nginx-php71-test | grep "Requests per second" - docker-compose -f test.yml -p nginx71 down -v; - -test-php-nginx-7.2: - docker-compose -f test.yml -p nginx72 up -d nginx-php72-instance - sleep 5; - docker-compose -f test.yml -p nginx72 run nginx-php72-test | grep "Requests per second" - docker-compose -f test.yml -p nginx72 down -v; - -test-php-nginx-7.3: - docker-compose -f test.yml -p nginx73 up -d nginx-php73-instance - sleep 5; - docker-compose -f test.yml -p nginx73 run nginx-php73-test | grep "Requests per second" - docker-compose -f test.yml -p nginx73 down -v; - -build-php-nginx: build-php-nginx-5.6 build-php-nginx-7.0 build-php-nginx-7.1 build-php-nginx-7.2 build-php-nginx-7.3 tag-nginx - -build-php-5.6: build-base build-php-core-5.6 build-php-cli-5.6 build-php-apache-5.6 build-php-nginx-5.6 -build-php-7.0: build-base build-php-core-7.0 build-php-cli-7.0 build-php-apache-7.0 build-php-nginx-7.0 -build-php-7.1: build-base build-php-core-7.1 build-php-cli-7.1 build-php-apache-7.1 build-php-nginx-7.1 -build-php-7.2: build-base build-php-core-7.2 build-php-cli-7.2 build-php-apache-7.2 build-php-nginx-7.2 -build-php-7.3: build-base build-php-core-7.3 build-php-cli-7.3 build-php-apache-7.3 build-php-nginx-7.3 - -build-node-8: - cp ./nodejs/Dockerfile ./nodejs/Dockerfile.node8 - sed -i 's/{{NODE_VERSION}}/8\.16\.0/g' ./nodejs/Dockerfile.node8 - sed -i 's/{{YARN_VERSION}}/1\.15\.2/g' ./nodejs/Dockerfile.node8 - docker build --pull --target nodejs -t gone/node:8 -f ./nodejs/Dockerfile.node8 ./nodejs - docker build --pull --target nodejs-onbuild -t gone/node:8-onbuild -f ./nodejs/Dockerfile.node8 ./nodejs - docker build --pull --target nodejs-compiler -t gone/node:8-gcc -f ./nodejs/Dockerfile.node8 ./nodejs - docker build --pull --target nodejs-compiler-onbuild -t gone/node:8-gcc-onbuild -f ./nodejs/Dockerfile.node8 ./nodejs - -build-node-10: - cp ./nodejs/Dockerfile ./nodejs/Dockerfile.node10 - sed -i 's/{{NODE_VERSION}}/10\.16\.0/g' ./nodejs/Dockerfile.node10 - sed -i 's/{{YARN_VERSION}}/1\.16\.0/g' ./nodejs/Dockerfile.node10 - docker build --pull --target nodejs -t gone/node:10 -f ./nodejs/Dockerfile.node10 ./nodejs - docker build --pull --target nodejs-onbuild -t gone/node:10-onbuild -f ./nodejs/Dockerfile.node10 ./nodejs - docker build --pull --target nodejs-compiler -t gone/node:10-gcc -f ./nodejs/Dockerfile.node10 ./nodejs - docker build --pull --target nodejs-compiler-onbuild -t gone/node:10-gcc-onbuild -f ./nodejs/Dockerfile.node10 ./nodejs - -build-node-11: - cp ./nodejs/Dockerfile ./nodejs/Dockerfile.node11 - sed -i 's/{{NODE_VERSION}}/11\.15\.0/g' ./nodejs/Dockerfile.node11 - sed -i 's/{{YARN_VERSION}}/1\.16\.0/g' ./nodejs/Dockerfile.node11 - docker build --pull --target nodejs -t gone/node:11 -f ./nodejs/Dockerfile.node11 ./nodejs - docker build --pull --target nodejs-onbuild -t gone/node:11-onbuild -f ./nodejs/Dockerfile.node11 ./nodejs - docker build --pull --target nodejs-compiler -t gone/node:11-gcc -f ./nodejs/Dockerfile.node11 ./nodejs - docker build --pull --target nodejs-compiler-onbuild -t gone/node:11-gcc-onbuild -f ./nodejs/Dockerfile.node11 ./nodejs - -build-node-12: - cp ./nodejs/Dockerfile ./nodejs/Dockerfile.node12 - sed -i 's/{{NODE_VERSION}}/12\.3\.1/g' ./nodejs/Dockerfile.node12 - sed -i 's/{{YARN_VERSION}}/1\.16\.0/g' ./nodejs/Dockerfile.node12 - docker build --pull --target nodejs -t gone/node:12 -f ./nodejs/Dockerfile.node12 ./nodejs - docker build --pull --target nodejs-onbuild -t gone/node:12-onbuild -f ./nodejs/Dockerfile.node12 ./nodejs - docker build --pull --target nodejs-compiler -t gone/node:12-gcc -f ./nodejs/Dockerfile.node12 ./nodejs - docker build --pull --target nodejs-compiler-onbuild -t gone/node:12-gcc-onbuild -f ./nodejs/Dockerfile.node12 ./nodejs - -build-node: build-node-8 build-node-10 build-node-11 build-node-12 - -tag-node: tag-node-8 tag-node-10 tag-node-11 tag-node-12 - -tag-node-8: - docker tag gone/node:8 gone/node:8-$(DATE) - docker tag gone/node:8 gone/node:8-$(ARCH)-$(DATE) - docker tag gone/node:8 gone/node:8-$(ARCH) - docker tag gone/node:8-onbuild gone/node:8-onbuild-$(DATE) - docker tag gone/node:8-onbuild gone/node:8-onbuild-$(ARCH)-$(DATE) - docker tag gone/node:8-onbuild gone/node:8-onbuild-$(ARCH) - docker tag gone/node:8-gcc gone/node:8-gcc-$(DATE) - docker tag gone/node:8-gcc gone/node:8-gcc-$(ARCH)-$(DATE) - docker tag gone/node:8-gcc gone/node:8-gcc-$(ARCH) - docker tag gone/node:8-gcc-onbuild gone/node:8-gcc-onbuild-$(DATE) - docker tag gone/node:8-gcc-onbuild gone/node:8-gcc-onbuild-$(ARCH)-$(DATE) - docker tag gone/node:8-gcc-onbuild gone/node:8-gcc-onbuild-$(ARCH) - -tag-node-10: - docker tag gone/node:10 gone/node:10-$(DATE) - docker tag gone/node:10 gone/node:10-$(ARCH)-$(DATE) - docker tag gone/node:10 gone/node:10-$(ARCH) - docker tag gone/node:10-onbuild gone/node:10-onbuild-$(DATE) - docker tag gone/node:10-onbuild gone/node:10-onbuild-$(ARCH)-$(DATE) - docker tag gone/node:10-onbuild gone/node:10-onbuild-$(ARCH) - docker tag gone/node:10-gcc gone/node:10-gcc-$(DATE) - docker tag gone/node:10-gcc gone/node:10-gcc-$(ARCH)-$(DATE) - docker tag gone/node:10-gcc gone/node:10-gcc-$(ARCH) - docker tag gone/node:10-gcc-onbuild gone/node:10-gcc-onbuild-$(DATE) - docker tag gone/node:10-gcc-onbuild gone/node:10-gcc-onbuild-$(ARCH)-$(DATE) - docker tag gone/node:10-gcc-onbuild gone/node:10-gcc-onbuild-$(ARCH) - -tag-node-11: - docker tag gone/node:11 gone/node:11-$(DATE) - docker tag gone/node:11 gone/node:11-$(ARCH)-$(DATE) - docker tag gone/node:11 gone/node:11-$(ARCH) - docker tag gone/node:11-onbuild gone/node:11-onbuild-$(DATE) - docker tag gone/node:11-onbuild gone/node:11-onbuild-$(ARCH)-$(DATE) - docker tag gone/node:11-onbuild gone/node:11-onbuild-$(ARCH) - docker tag gone/node:11-gcc gone/node:11-gcc-$(DATE) - docker tag gone/node:11-gcc gone/node:11-gcc-$(ARCH)-$(DATE) - docker tag gone/node:11-gcc gone/node:11-gcc-$(ARCH) - docker tag gone/node:11-gcc-onbuild gone/node:11-gcc-onbuild-$(DATE) - docker tag gone/node:11-gcc-onbuild gone/node:11-gcc-onbuild-$(ARCH)-$(DATE) - docker tag gone/node:11-gcc-onbuild gone/node:11-gcc-onbuild-$(ARCH) - -tag-node-12: - docker tag gone/node:12 gone/node:12-$(DATE) - docker tag gone/node:12 gone/node:12-$(ARCH)-$(DATE) - docker tag gone/node:12 gone/node:12-$(ARCH) - docker tag gone/node:12-onbuild gone/node:12-onbuild-$(DATE) - docker tag gone/node:12-onbuild gone/node:12-onbuild-$(ARCH)-$(DATE) - docker tag gone/node:12-onbuild gone/node:12-onbuild-$(ARCH) - docker tag gone/node:12-gcc gone/node:12-gcc-$(DATE) - docker tag gone/node:12-gcc gone/node:12-gcc-$(ARCH)-$(DATE) - docker tag gone/node:12-gcc gone/node:12-gcc-$(ARCH) - docker tag gone/node:12-gcc-onbuild gone/node:12-gcc-onbuild-$(DATE) - docker tag gone/node:12-gcc-onbuild gone/node:12-gcc-onbuild-$(ARCH)-$(DATE) - docker tag gone/node:12-gcc-onbuild gone/node:12-gcc-onbuild-$(ARCH) - -build: - $(MAKE) prepare - $(MAKE) build-marshall - $(MAKE) build-php-5.6 - $(MAKE) build-php-7.0 - $(MAKE) build-php-7.1 - $(MAKE) build-php-7.2 - $(MAKE) build-php-7.3 - $(MAKE) build-node - -push-marshall: - docker push gone/marshall:latest - docker push gone/marshall:$(DATE) - docker push gone/marshall:$(ARCH) - docker push gone/marshall:$(ARCH)-$(DATE) - -push-core-5.6: - docker push gone/php:core-5.6-$(ARCH)-$(DATE) - docker push gone/php:core-5.6-$(ARCH) - docker push gone/php:core-5.6 - -push-core-7.0: - docker push gone/php:core-7.0-$(ARCH)-$(DATE) - docker push gone/php:core-7.0-$(ARCH) - docker push gone/php:core-7.0 - -push-core-7.1: - docker push gone/php:core-7.1-$(ARCH)-$(DATE) - docker push gone/php:core-7.1-$(ARCH) - docker push gone/php:core-7.1 - -push-core-7.2: - docker push gone/php:core-7.2-$(ARCH)-$(DATE) - docker push gone/php:core-7.2-$(ARCH) - docker push gone/php:core-7.2 - -push-core-7.3: - docker push gone/php:core-7.3-$(ARCH)-$(DATE) - docker push gone/php:core-7.3-$(ARCH) - docker push gone/php:core-7.3 - -push-cli-5.6: - docker push gone/php:cli-php5.6-$(ARCH)-$(DATE) - docker push gone/php:cli-php5.6-$(ARCH) - docker push gone/php:cli-php5.6 - -push-cli-7.0: - docker push gone/php:cli-php7.0-$(ARCH)-$(DATE) - docker push gone/php:cli-php7.0-$(ARCH) - docker push gone/php:cli-php7.0 - -push-cli-7.1: - docker push gone/php:cli-php7.1-$(ARCH)-$(DATE) - docker push gone/php:cli-php7.1-$(ARCH) - docker push gone/php:cli-php7.1 - -push-cli-7.2: - docker push gone/php:cli-php7.2-$(ARCH)-$(DATE) - docker push gone/php:cli-php7.2-$(ARCH) - docker push gone/php:cli-php7.2 - -push-cli-7.3: - docker push gone/php:cli-php7.3-$(ARCH)-$(DATE) - docker push gone/php:cli-php7.3-$(ARCH) - docker push gone/php:cli-php7.3 - -push-apache-5.6: - docker push gone/php:apache-php5.6-$(ARCH)-$(DATE) - docker push gone/php:apache-php5.6-$(ARCH) - docker push gone/php:apache-php5.6 - -push-apache-7.0: - docker push gone/php:apache-php7.0-$(ARCH)-$(DATE) - docker push gone/php:apache-php7.0-$(ARCH) - docker push gone/php:apache-php7.0 - -push-apache-7.1: - docker push gone/php:apache-php7.1-$(ARCH)-$(DATE) - docker push gone/php:apache-php7.1-$(ARCH) - docker push gone/php:apache-php7.1 - -push-apache-7.2: - docker push gone/php:apache-php7.2-$(ARCH)-$(DATE) - docker push gone/php:apache-php7.2-$(ARCH) - docker push gone/php:apache-php7.2 - -push-apache-7.3: - docker push gone/php:apache-php7.3-$(ARCH)-$(DATE) - docker push gone/php:apache-php7.3-$(ARCH) - docker push gone/php:apache-php7.3 - -push-nginx-5.6: - docker push gone/php:nginx-php5.6-$(ARCH)-$(DATE) - docker push gone/php:nginx-php5.6-$(ARCH) - docker push gone/php:nginx-php5.6 - -push-nginx-7.0: - docker push gone/php:nginx-php7.0-$(ARCH)-$(DATE) - docker push gone/php:nginx-php7.0-$(ARCH) - docker push gone/php:nginx-php7.0 - -push-nginx-7.1: - docker push gone/php:nginx-php7.1-$(ARCH)-$(DATE) - docker push gone/php:nginx-php7.1-$(ARCH) - docker push gone/php:nginx-php7.1 - -push-nginx-7.2: - docker push gone/php:nginx-php7.2-$(ARCH)-$(DATE) - docker push gone/php:nginx-php7.2-$(ARCH) - docker push gone/php:nginx-php7.2 - -push-nginx-7.3: - docker push gone/php:nginx-php7.3-$(ARCH)-$(DATE) - docker push gone/php:nginx-php7.3-$(ARCH) - docker push gone/php:nginx-php7.3 - -push-node-8: - docker push gone/node:8 - docker push gone/node:8-$(DATE) - docker push gone/node:8-$(ARCH)-$(DATE) - docker push gone/node:8-$(ARCH) - docker push gone/node:8-onbuild - docker push gone/node:8-onbuild-$(DATE) - docker push gone/node:8-onbuild-$(ARCH)-$(DATE) - docker push gone/node:8-onbuild-$(ARCH) - docker push gone/node:8-gcc - docker push gone/node:8-gcc-$(DATE) - docker push gone/node:8-gcc-$(ARCH)-$(DATE) - docker push gone/node:8-gcc-$(ARCH) - docker push gone/node:8-gcc-onbuild - docker push gone/node:8-gcc-onbuild-$(DATE) - docker push gone/node:8-gcc-onbuild-$(ARCH)-$(DATE) - docker push gone/node:8-gcc-onbuild-$(ARCH) - -push-node-10: - docker push gone/node:10 - docker push gone/node:10-$(DATE) - docker push gone/node:10-$(ARCH)-$(DATE) - docker push gone/node:10-$(ARCH) - docker push gone/node:10-onbuild - docker push gone/node:10-onbuild-$(DATE) - docker push gone/node:10-onbuild-$(ARCH)-$(DATE) - docker push gone/node:10-onbuild-$(ARCH) - docker push gone/node:10-gcc - docker push gone/node:10-gcc-$(DATE) - docker push gone/node:10-gcc-$(ARCH)-$(DATE) - docker push gone/node:10-gcc-$(ARCH) - docker push gone/node:10-gcc-onbuild - docker push gone/node:10-gcc-onbuild-$(DATE) - docker push gone/node:10-gcc-onbuild-$(ARCH)-$(DATE) - docker push gone/node:10-gcc-onbuild-$(ARCH) - -push-node-11: - docker push gone/node:11 - docker push gone/node:11-$(DATE) - docker push gone/node:11-$(ARCH)-$(DATE) - docker push gone/node:11-$(ARCH) - docker push gone/node:11-onbuild - docker push gone/node:11-onbuild-$(DATE) - docker push gone/node:11-onbuild-$(ARCH)-$(DATE) - docker push gone/node:11-onbuild-$(ARCH) - docker push gone/node:11-gcc - docker push gone/node:11-gcc-$(DATE) - docker push gone/node:11-gcc-$(ARCH)-$(DATE) - docker push gone/node:11-gcc-$(ARCH) - docker push gone/node:11-gcc-onbuild - docker push gone/node:11-gcc-onbuild-$(DATE) - docker push gone/node:11-gcc-onbuild-$(ARCH)-$(DATE) - docker push gone/node:11-gcc-onbuild-$(ARCH) - -push-node-12: - docker push gone/node:12 - docker push gone/node:12-$(DATE) - docker push gone/node:12-$(ARCH)-$(DATE) - docker push gone/node:12-$(ARCH) - docker push gone/node:12-onbuild - docker push gone/node:12-onbuild-$(DATE) - docker push gone/node:12-onbuild-$(ARCH)-$(DATE) - docker push gone/node:12-onbuild-$(ARCH) - docker push gone/node:12-gcc - docker push gone/node:12-gcc-$(DATE) - docker push gone/node:12-gcc-$(ARCH)-$(DATE) - docker push gone/node:12-gcc-$(ARCH) - docker push gone/node:12-gcc-onbuild - docker push gone/node:12-gcc-onbuild-$(DATE) - docker push gone/node:12-gcc-onbuild-$(ARCH)-$(DATE) - docker push gone/node:12-gcc-onbuild-$(ARCH) - -push-core: push-core-5.6 push-core-7.0 push-core-7.1 push-core-7.2 push-core-7.3 -push-cli: push-cli-5.6 push-cli-7.0 push-cli-7.1 push-cli-7.2 push-cli-7.3 -push-apache: push-apache-5.6 push-apache-7.0 push-apache-7.1 push-apache-7.2 push-apache-7.3 -push-nginx: push-nginx-5.6 push-nginx-7.0 push-nginx-7.1 push-nginx-7.2 push-nginx-7.3 -push-node: push-node-8 push-node-10 push-node-11 push-node-12 -push: push-marshall push-core push-cli push-apache push-nginx push-node - -aliases: - docker pull gone/php:cli-php7.3 - docker pull gone/php:nginx-php7.3 - docker pull gone/php:apache-php7.3 - docker pull gone/node:12 - - docker tag gone/php:cli-php7.3 gone/php:cli - docker tag gone/php:nginx-php7.3 gone/php:nginx - docker tag gone/php:apache-php7.3 gone/php:apache - docker tag gone/node:12 gone/node:latest - - docker push gone/php:cli - docker push gone/php:nginx - docker push gone/php:apache - docker push gone/node:latest - -readme: - ./docs - git add README.md - git commit -m "Updated Readme with new docs" README.md - git push - -release: build readme push cleanup \ No newline at end of file diff --git a/README.Template b/README.Template deleted file mode 100644 index 8f57d97..0000000 --- a/README.Template +++ /dev/null @@ -1,4 +0,0 @@ -# Gone.io Docker Base -Docker PHP Base kit based on phusion/baseimage, featuring PHP %%Php_Version%% - -%%Availability_Table%% \ No newline at end of file diff --git a/build.yml b/build.yml new file mode 100644 index 0000000..e338196 --- /dev/null +++ b/build.yml @@ -0,0 +1,542 @@ +version: '2.4' + +services: + marshall: + image: gone/marshall + build: + context: . + target: marshall + + node-8: + image: gone/node:8 + build: + context: . + target: nodejs + args: + NODE_VERSION: 8.16.0 + YARN_VERSION: 1.15.2 + node-8-onbuild: + extends: + service: node-8 + image: gone/node:8-onbuild + build: + target: nodejs-onbuild + node-8-gcc: + extends: + service: node-8 + image: gone/node:8-gcc + build: + target: nodejs-gcc + node-8-gcc-onbuild: + extends: + service: node-8-gcc + image: gone/node:8-gcc-onbuild + build: + target: nodejs-gcc-onbuild + + node-10: + image: gone/node:10 + build: + context: . + target: nodejs + args: + NODE_VERSION: 8.16.0 + YARN_VERSION: 1.15.2 + node-10-onbuild: + extends: + service: node-10 + image: gone/node:10-onbuild + build: + target: nodejs-onbuild + node-10-gcc: + extends: + service: node-10 + image: gone/node:10-gcc + build: + target: nodejs-gcc + node-10-gcc-onbuild: + extends: + service: node-10-gcc + image: gone/node:10-gcc-onbuild + build: + target: nodejs-gcc-onbuild + + node-11: + image: gone/node:11 + build: + context: . + target: nodejs + args: + NODE_VERSION: 8.16.0 + YARN_VERSION: 1.15.2 + node-11-onbuild: + extends: + service: node-11 + image: gone/node:11-onbuild + build: + target: nodejs-onbuild + node-11-gcc: + extends: + service: node-11 + image: gone/node:11-gcc + build: + target: nodejs-gcc + node-11-gcc-onbuild: + extends: + service: node-11-gcc + image: gone/node:11-gcc-onbuild + build: + target: nodejs-gcc-onbuild + + node-12: + image: gone/node:12 + build: + context: . + target: nodejs + args: + NODE_VERSION: 8.16.0 + YARN_VERSION: 1.15.2 + node-12-onbuild: + extends: + service: node-12 + image: gone/node:12-onbuild + build: + target: nodejs-onbuild + node-12-gcc: + extends: + service: node-12 + image: gone/node:12-gcc + build: + target: nodejs-gcc + node-12-gcc-onbuild: + extends: + service: node-12-gcc + image: gone/node:12-gcc-onbuild + build: + target: nodejs-gcc-onbuild + + php-core-56: + image: gone/php:core-5.6 + build: + context: . + target: php-core + args: + PHP_VERSION: 5.6 + PHP_PACKAGES: + mysql-client + php-apcu + php-xdebug + php5.6-bcmath + php5.6-bz2 + php5.6-cli + php5.6-curl + php5.6-gd + php5.6-imap + php5.6-intl + php5.6-json + php5.6-ldap + php5.6-mbstring + php5.6-mcrypt + php5.6-memcache + php5.6-memcached + php5.6-mongodb + php5.6-mysql + php5.6-opcache + php5.6-pgsql + php5.6-pspell + php5.6-redis + php5.6-soap + php5.6-sqlite + php5.6-xml + php5.6-zip + postgresql-client + + php-core-70: + image: gone/php:core-7.0 + build: + context: . + target: php-core + args: + PHP_VERSION: 7.0 + PHP_PACKAGES: + mysql-client + php-apcu + php-xdebug + php7.0-bcmath + php7.0-bz2 + php7.0-cli + php7.0-curl + php7.0-gd + php7.0-imap + php7.0-intl + php7.0-json + php7.0-ldap + php7.0-mbstring + php7.0-mcrypt + php7.0-memcache + php7.0-memcached + php7.0-mongodb + php7.0-mysql + php7.0-opcache + php7.0-pgsql + php7.0-pspell + php7.0-redis + php7.0-soap + php7.0-sqlite + php7.0-xml + php7.0-zip + postgresql-client + + php-core-71: + image: gone/php:core-7.1 + build: + context: . + target: php-core + args: + PHP_VERSION: 7.1 + PHP_PACKAGES: + mysql-client + php-apcu + php-xdebug + php7.1-bcmath + php7.1-bz2 + php7.1-cli + php7.1-curl + php7.1-gd + php7.1-imap + php7.1-intl + php7.1-json + php7.1-ldap + php7.1-mbstring + php7.1-mcrypt + php7.1-memcache + php7.1-memcached + php7.1-mongodb + php7.1-mysql + php7.1-opcache + php7.1-pgsql + php7.1-pspell + php7.1-redis + php7.1-soap + php7.1-sqlite + php7.1-xml + php7.1-zip + postgresql-client + + php-core-72: + image: gone/php:core-7.2 + build: + context: . + target: php-core + args: + PHP_VERSION: 7.2 + PHP_PACKAGES: + mysql-client + php-apcu + php-xdebug + php7.2-bcmath + php7.2-bz2 + php7.2-cli + php7.2-curl + php7.2-gd + php7.2-imap + php7.2-intl + php7.2-json + php7.2-ldap + php7.2-mbstring + php7.2-memcache + php7.2-memcached + php7.2-mongodb + php7.2-mysql + php7.2-opcache + php7.2-pgsql + php7.2-pspell + php7.2-redis + php7.2-soap + php7.2-sqlite + php7.2-xml + php7.2-zip + postgresql-client + php-core-73: + image: gone/php:core-7.3 + build: + context: . + target: php-core + args: + PHP_VERSION: 7.3 + PHP_PACKAGES: + mysql-client + php-apcu + php-xdebug + php7.3-bcmath + php7.3-bz2 + php7.3-cli + php7.3-curl + php7.3-gd + php7.3-imap + php7.3-intl + php7.3-json + php7.3-ldap + php7.3-mbstring + php7.3-memcache + php7.3-memcached + php7.3-mongodb + php7.3-mysql + php7.3-opcache + php7.3-pgsql + php7.3-pspell + php7.3-redis + php7.3-soap + php7.3-sqlite + php7.3-xml + php7.3-zip + postgresql-client + + php-cli-56: + extends: + service: php-core-56 + image: gone/php:cli-5.6 + build: + context: . + target: php-cli + php-cli-56-onbuild: + extends: + service: php-core-56 + image: gone/php:cli-5.6-onbuild + build: + context: . + target: php-cli-onbuild + php-cli-70: + extends: + service: php-core-70 + image: gone/php:cli-7.0 + build: + context: . + target: php-cli + php-cli-70-onbuild: + extends: + service: php-core-70 + image: gone/php:cli-7.0-onbuild + build: + context: . + target: php-cli-onbuild + php-cli-71: + extends: + service: php-core-71 + image: gone/php:cli-7.1 + build: + context: . + target: php-cli + php-cli-71-onbuild: + extends: + service: php-core-71 + image: gone/php:cli-7.1-onbuild + build: + context: . + target: php-cli-onbuild + php-cli-72: + extends: + service: php-core-72 + image: gone/php:cli-7.2 + build: + context: . + target: php-cli + php-cli-72-onbuild: + extends: + service: php-core-72 + image: gone/php:cli-7.2-onbuild + build: + context: . + target: php-cli-onbuild + php-cli-73: + extends: + service: php-core-73 + image: gone/php:cli-7.3 + build: + context: . + target: php-cli + php-cli-73-onbuild: + extends: + service: php-core-73 + image: gone/php:cli-7.3-onbuild + build: + context: . + target: php-cli-onbuild + + php-apache-56: + extends: + service: php-core-56 + image: gone/php:apache-5.6 + build: + context: . + target: php-apache + php-apache-56-onbuild: + extends: + service: php-core-56 + image: gone/php:apache-5.6-onbuild + build: + context: . + target: php-apache-onbuild + php-apache-70: + extends: + service: php-core-70 + image: gone/php:apache-7.0 + build: + context: . + target: php-apache + php-apache-70-onbuild: + extends: + service: php-core-70 + image: gone/php:apache-7.0-onbuild + build: + context: . + target: php-apache-onbuild + php-apache-71: + extends: + service: php-core-71 + image: gone/php:apache-7.1 + build: + context: . + target: php-apache + php-apache-71-onbuild: + extends: + service: php-core-71 + image: gone/php:apache-7.1-onbuild + build: + context: . + target: php-apache-onbuild + php-apache-72: + extends: + service: php-core-72 + image: gone/php:apache-7.2 + build: + context: . + target: php-apache + php-apache-72-onbuild: + extends: + service: php-core-72 + image: gone/php:apache-7.2-onbuild + build: + context: . + target: php-apache-onbuild + php-apache-73: + extends: + service: php-core-73 + image: gone/php:apache-7.3 + build: + context: . + target: php-apache + php-apache-73-onbuild: + extends: + service: php-core-73 + image: gone/php:apache-7.3-onbuild + build: + context: . + target: php-apache-onbuild + + php-nginx-56: + extends: + service: php-core-56 + image: gone/php:nginx-5.6 + build: + context: . + target: php-nginx + php-nginx-56-onbuild: + extends: + service: php-core-56 + image: gone/php:nginx-5.6-onbuild + build: + context: . + target: php-nginx-onbuild + php-nginx-70: + extends: + service: php-core-70 + image: gone/php:nginx-7.0 + build: + context: . + target: php-nginx + php-nginx-70-onbuild: + extends: + service: php-core-70 + image: gone/php:nginx-7.0-onbuild + build: + context: . + target: php-nginx-onbuild + php-nginx-71: + extends: + service: php-core-71 + image: gone/php:nginx-7.1 + build: + context: . + target: php-nginx + php-nginx-71-onbuild: + extends: + service: php-core-71 + image: gone/php:nginx-7.1-onbuild + build: + context: . + target: php-nginx-onbuild + php-nginx-72: + extends: + service: php-core-72 + image: gone/php:nginx-7.2 + build: + context: . + target: php-nginx + php-nginx-72-onbuild: + extends: + service: php-core-72 + image: gone/php:nginx-7.2-onbuild + build: + context: . + target: php-nginx-onbuild + php-nginx-73: + extends: + service: php-core-73 + image: gone/php:nginx-7.3 + build: + context: . + target: php-nginx + php-nginx-73-onbuild: + extends: + service: php-core-73 + image: gone/php:nginx-7.3-onbuild + build: + context: . + target: php-nginx-onbuild + + node-latest: + extends: + service: node-12 + image: gone/node:latest + node-onbuild-latest: + extends: + service: node-12 + image: gone/node:onbuild + + php-cli-latest: + extends: + service: php-cli-73 + image: gone/php:cli + php-cli-onbuild-latest: + extends: + service: php-cli-73-onbuild + image: gone/php:cli-onbuild + + php-apache-latest: + extends: + service: php-apache-73 + image: gone/php:apache + php-apache-onbuild-latest: + extends: + service: php-apache-73-onbuild + image: gone/php:apache-onbuild + + php-nginx-latest: + extends: + service: php-nginx-73 + image: gone/php:nginx + php-nginx-onbuild-latest: + extends: + service: php-nginx-73-onbuild + image: gone/php:nginx-onbuild \ No newline at end of file diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 0000000..22d0d82 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1 @@ +vendor diff --git a/doc/composer.json b/doc/composer.json new file mode 100644 index 0000000..1238082 --- /dev/null +++ b/doc/composer.json @@ -0,0 +1,15 @@ +{ + "name": "gone/base-image-doc-gen", + "type": "project", + "authors": [ + { + "name": "Matthew Baggett", + "email": "matthew@baggett.me" + } + ], + "require": { + "kint-php/kint": "^3.2", + "adambrett/shell-wrapper": "dev-master", + "react/child-process": "^0.6.1" + } +} diff --git a/doc/composer.lock b/doc/composer.lock new file mode 100644 index 0000000..cf230a6 --- /dev/null +++ b/doc/composer.lock @@ -0,0 +1,308 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "aa3efcb8e88c94b3a7b0d7729e3d9f96", + "packages": [ + { + "name": "adambrett/shell-wrapper", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/adambrett/php-shell-wrapper.git", + "reference": "0ca9c254a547313d4990d11d8aca8da3fb647e6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/adambrett/php-shell-wrapper/zipball/0ca9c254a547313d4990d11d8aca8da3fb647e6e", + "reference": "0ca9c254a547313d4990d11d8aca8da3fb647e6e", + "shasum": "" + }, + "require-dev": { + "covex-nn/phpcb": "*@dev", + "fzaninotto/faker": "*@dev", + "mockery/mockery": "*@dev", + "pdepend/pdepend": "*@dev", + "phploc/phploc": "*@dev", + "phpmd/phpmd": "*@dev", + "phpunit/phpunit": "*@dev", + "sebastian/phpcpd": "*@dev", + "squizlabs/php_codesniffer": "*@dev" + }, + "type": "library", + "autoload": { + "psr-4": { + "AdamBrett\\ShellWrapper\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BDS-3-Clause" + ], + "authors": [ + { + "name": "Adam Brett", + "email": "adam@adambrett.co.uk" + } + ], + "description": "An object oriented wrapper for shell commands", + "time": "2017-02-16T16:57:56+00:00" + }, + { + "name": "evenement/evenement", + "version": "v3.0.1", + "source": { + "type": "git", + "url": "https://github.com/igorw/evenement.git", + "reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/igorw/evenement/zipball/531bfb9d15f8aa57454f5f0285b18bec903b8fb7", + "reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Evenement": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + } + ], + "description": "Événement is a very simple event dispatching library for PHP", + "keywords": [ + "event-dispatcher", + "event-emitter" + ], + "time": "2017-07-23T21:35:13+00:00" + }, + { + "name": "kint-php/kint", + "version": "3.2.2", + "source": { + "type": "git", + "url": "https://github.com/kint-php/kint.git", + "reference": "c332db9529fdce74ae6a347f97a1e7395e76ced8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kint-php/kint/zipball/c332db9529fdce74ae6a347f97a1e7395e76ced8", + "reference": "c332db9529fdce74ae6a347f97a1e7395e76ced8", + "shasum": "" + }, + "require": { + "php": ">=5.3.6" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.0", + "phpunit/phpunit": "^4.0", + "seld/phar-utils": "^1.0", + "symfony/finder": "^2.0 || ^3.0 || ^4.0", + "vimeo/psalm": "^3.0" + }, + "suggest": { + "ext-ctype": "Simple data type tests", + "ext-iconv": "Provides fallback detection for ambiguous legacy string encodings such as the Windows and ISO 8859 code pages", + "ext-mbstring": "Provides string encoding detection", + "kint-php/kint-js": "Provides a simplified dump to console.log()", + "kint-php/kint-twig": "Provides d() and s() functions in twig templates", + "symfony/polyfill-ctype": "Replacement for ext-ctype if missing", + "symfony/polyfill-iconv": "Replacement for ext-iconv if missing", + "symfony/polyfill-mbstring": "Replacement for ext-mbstring if missing" + }, + "type": "library", + "autoload": { + "files": [ + "init.php" + ], + "psr-4": { + "Kint\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Rokas Šleinius", + "homepage": "https://github.com/raveren" + }, + { + "name": "Jonathan Vollebregt", + "homepage": "https://github.com/jnvsor" + }, + { + "name": "Contributors", + "homepage": "https://github.com/kint-php/kint/graphs/contributors" + } + ], + "description": "Kint - debugging tool for PHP developers", + "homepage": "https://kint-php.github.io/kint/", + "keywords": [ + "debug", + "kint", + "php" + ], + "time": "2019-05-03T16:49:16+00:00" + }, + { + "name": "react/child-process", + "version": "v0.6.1", + "source": { + "type": "git", + "url": "https://github.com/reactphp/child-process.git", + "reference": "6895afa583d51dc10a4b9e93cd3bce17b3b77ac3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/child-process/zipball/6895afa583d51dc10a4b9e93cd3bce17b3b77ac3", + "reference": "6895afa583d51dc10a4b9e93cd3bce17b3b77ac3", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5", + "react/stream": "^1.0 || ^0.7.6" + }, + "require-dev": { + "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35", + "react/socket": "^1.0", + "sebastian/environment": "^3.0 || ^2.0 || ^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\ChildProcess\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Event-driven library for executing child processes with ReactPHP.", + "keywords": [ + "event-driven", + "process", + "reactphp" + ], + "time": "2019-02-15T13:48:16+00:00" + }, + { + "name": "react/event-loop", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/event-loop.git", + "reference": "a0ecac955c67b57c40fe4a1b88a7cca1b58c982d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/a0ecac955c67b57c40fe4a1b88a7cca1b58c982d", + "reference": "a0ecac955c67b57c40fe4a1b88a7cca1b58c982d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35" + }, + "suggest": { + "ext-event": "~1.0 for ExtEventLoop", + "ext-pcntl": "For signal handling support when using the StreamSelectLoop", + "ext-uv": "* for ExtUvLoop" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\EventLoop\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.", + "keywords": [ + "asynchronous", + "event-loop" + ], + "time": "2019-02-07T16:19:49+00:00" + }, + { + "name": "react/stream", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/stream.git", + "reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/stream/zipball/50426855f7a77ddf43b9266c22320df5bf6c6ce6", + "reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.8", + "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5" + }, + "require-dev": { + "clue/stream-filter": "~1.2", + "phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Stream\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP", + "keywords": [ + "event-driven", + "io", + "non-blocking", + "pipe", + "reactphp", + "readable", + "stream", + "writable" + ], + "time": "2019-01-01T16:15:09+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "adambrett/shell-wrapper": 20 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} diff --git a/doc/gen b/doc/gen new file mode 100755 index 0000000..6c39195 --- /dev/null +++ b/doc/gen @@ -0,0 +1,131 @@ +#!/usr/bin/php +addSubCommand(new Command\SubCommand("pull")); + $command->addParam(new Command\Param($image)); + echo sprintf( + 'Running: "%s"' . PHP_EOL, + (string) $command + ); + $process = new Process((string) $command); + $process->start($loop); + + $process->stdout->on('data', function($chunk){ + #echo $chunk; + }); + $process->stderr->on('data', function($chunk){ + echo $chunk; + }); + $process->on('exit', function($exitCode, $termSignal) use ($command) { + if($exitCode == 0){ + echo sprintf( + 'Process "%s", succeeded!' . PHP_EOL, + (string) $command + ); + }else{ + echo sprintf( + 'Process "%s", exited with code %d' . PHP_EOL, + (string) $command, + $exitCode + ); + echo "\n\n"; + exit(255); + } + }); +} + +$loop->run(); + +// Iterate and weigh images. +$weights = []; +foreach($images as $image) { + $shell = new Runners\ShellExec(); + $command = new Command("docker"); + $command->addSubCommand(new Command\SubCommand("images")); + $command->addParam(new Command\Param($image)); + $command->addFlag(new Command\Flag("format", "{{json .}}")); + echo sprintf( + 'Running: "%s"' . PHP_EOL, + (string) $command + ); + $process = new Process((string) $command); + $process->start($loop); + + $process->stdout->on('data', function($chunk) use ($weights){ + \Kint::dump( + json_decode($chunk) + ); + }); + $process->stderr->on('data', function($chunk){ + echo $chunk; + }); + $process->on('exit', function($exitCode, $termSignal) use ($command) { + if($exitCode == 0){ + echo sprintf( + 'Process "%s", succeeded!' . PHP_EOL, + (string) $command + ); + }else{ + echo sprintf( + 'Process "%s", exited with code %d' . PHP_EOL, + (string) $command, + $exitCode + ); + echo "\n\n"; + exit(255); + } + }); +} + +$loop->run(); diff --git a/docs b/docs deleted file mode 100755 index f2f9837..0000000 --- a/docs +++ /dev/null @@ -1,218 +0,0 @@ -#!/usr/bin/php - $containerImageNameAndVersion, - 'File Size' => trim($size), - 'Layers' => "[![Layers](https://img.shields.io/badge/Layers-{$layers}-{$chosenLayerColour}.svg)](https://hub.docker.com/r/" . trim($name) . ")", - 'Microbadger' => "[![](https://images.microbadger.com/badges/image/{$containerImageNameAndVersion}.svg)](https://microbadger.com/images/{$containerImageNameAndVersion} \"Get your own image badge on microbadger.com\")", - 'PHP' => stripos($containerImageNameAndVersion, "php") ? '✔' : ' ', - 'Apache' =>stripos($containerImageNameAndVersion, "apache") ? '✔' : ' ', - 'Nginx' => stripos($containerImageNameAndVersion, "nginx") ? '✔' : ' ', - 'Node' => stripos($containerImageNameAndVersion, "nodejs") ? '✔' : ' ', - ]; - } - } -} - -ksort($availabilityTable); -$outputArray = []; -foreach($availabilityTable as $item){ - $outputArray[] = array_values($item); -} - -$detectedPHPVersion = trim(shell_exec('docker run gone/php:cli php -v | head -1 | cut -d "-" -f 1')); - -$availabilityTable = new TextTable( - array_keys(reset($availabilityTable)) -); - -$availabilityTable->maxlen = 100000; -$availabilityTable->addData($outputArray); - -$template = file_get_contents("README.Template"); - -$replacements = [ - "%%Availability_Table%%" => $availabilityTable->render(), - "%%Php_Version%%" => $detectedPHPVersion, - "%%Generated_At%%" => date("Y-m-d H:i:s"), -]; -foreach($replacements as $search => $replacement){ - $template = str_replace($search, $replacement, $template); -} - -file_put_contents("README.md", $template); - - - - -/** - * Creates a markdown document based on the parsed documentation - * - * @author Peter-Christoph Haider - * @package Apidoc - * @version 1.00 (2014-04-04) - * @license GNU Lesser Public License - */ -class TextTable { - /** @var int The source path */ - public $maxlen = 50; - /** @var array The source path */ - private $data = array(); - /** @var array The source path */ - private $header = array(); - /** @var array The source path */ - private $len = array(); - /** @var array The source path */ - private $align = array( - 'name' => 'L', - 'type' => 'C' - ); - /** - * @param array $header The header array [key => label, ...] - * @param array $content Content - * @param array $align Alignment optios [key => L|R|C, ...] - */ - public function __construct($header=null, $content=array(), $align=false) { - if ($header) { - $this->header = $header; - } elseif ($content) { - foreach ($content[0] as $key => $value) - $this->header[$key] = $key; - } - foreach ($this->header as $key => $label) { - $this->len[$key] = strlen($label); - } - if (is_array($align)) - $this->setAlign($align); - $this->addData($content); - } - /** - * Overwrite the alignment array - * - * @param array $align Alignment optios [key => L|R|C, ...] - */ - public function setAlign($align) { - $this->align = $align; - } - /** - * Add data to the table - * - * @param array $content Content - */ - public function addData($content) { - foreach ($content as &$row) { - foreach ($this->header as $key => $value) { - if (!isset($row[$key])) { - $row[$key] = '-'; - } elseif (mb_strlen($row[$key]) > $this->maxlen) { - $this->len[$key] = $this->maxlen; - $row[$key] = substr($row[$key], 0, $this->maxlen-3).'...'; - } elseif (mb_strlen($row[$key]) > $this->len[$key]) { - $this->len[$key] = mb_strlen($row[$key]); - } - } - } - $this->data = $this->data + $content; - return $this; - } - /** - * Add a delimiter - * - * @return string - */ - private function renderDelimiter() { - $res = '|'; - foreach ($this->len as $key => $l) - $res .= (isset($this->align[$key]) && ($this->align[$key] == 'C' || $this->align[$key] == 'L') ? ':' : ' ') - .str_repeat('-', $l) - .(isset($this->align[$key]) && ($this->align[$key] == 'C' || $this->align[$key] == 'R') ? ':' : ' ') - .'|'; - return $res."\r\n"; - } - /** - * Render a single row - * - * @param array $row - * @return string - */ - private function renderRow($row) { - $res = '|'; - foreach ($this->len as $key => $l) { - $res .= ' '.$row[$key].($l > mb_strlen($row[$key]) ? str_repeat(' ', $l - mb_strlen($row[$key])) : '').' |'; - } - return $res."\r\n"; - } - /** - * Render the table - * - * @param array $content Additional table content - * @return string - */ - public function render($content=array()) { - $this->addData($content); - $res = $this->renderRow($this->header) - .$this->renderDelimiter(); - foreach ($this->data as $row) - $res .= $this->renderRow($row); - return $res; - } -} \ No newline at end of file diff --git a/marshall/Dockerfile b/marshall/Dockerfile deleted file mode 100644 index af50682..0000000 --- a/marshall/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM ubuntu:latest - -MAINTAINER Matthew Baggett - -ENV DEBIAN_FRONTEND="teletype" \ - TERM=xterm-256color \ - COMPOSER_ALLOW_SUPERUSER=1 \ - COLOUR_FAIL='\e[31m' \ - COLOUR_SUCCESS='\e[32m' \ - COLOUR_NONE='\e[39m' \ - DEFAULT_TZ='Europe/London' - -CMD ["runsvdir", "-P", "/etc/service"] - -WORKDIR /app - -COPY ./ /app - -RUN chmod +x /app/installers/install && \ - mv /app/marshall_* /etc && \ - /app/installers/install && \ - rm -rf /app/installers /app/etc/ /app/usr Dockerfile && \ - ls -lah /etc/ | grep marshall \ No newline at end of file diff --git a/marshall/installers/000_apt.sh b/marshall/installers/000_apt.sh index 4bd840f..d1bb961 100644 --- a/marshall/installers/000_apt.sh +++ b/marshall/installers/000_apt.sh @@ -1,5 +1,5 @@ #!/bin/bash -source /app/installers/config +source /installers/config echo "force-unsafe-io" > /etc/dpkg/dpkg.cfg.d/force-unsafe-io # swap http://archive.ubuntu.com for the new mirror://mirrors.ubuntu.com/mirrors.txt mirror-router. sed -i 's/http\:\/\/archive\.ubuntu\.com\/ubuntu\//mirror\:\/\/mirrors.ubuntu.com\/mirrors.txt/g' /etc/apt/sources.list diff --git a/marshall/installers/001_bash.sh b/marshall/installers/001_bash.sh index 2dd5007..ea242f1 100644 --- a/marshall/installers/001_bash.sh +++ b/marshall/installers/001_bash.sh @@ -1,4 +1,4 @@ #!/bin/bash -source /app/installers/config +source /installers/config $APT_GET bash \ htop diff --git a/marshall/installers/002_timezone.sh b/marshall/installers/002_timezone.sh index efc6eb3..2f40943 100644 --- a/marshall/installers/002_timezone.sh +++ b/marshall/installers/002_timezone.sh @@ -1,4 +1,4 @@ #!/bin/bash -source /app/installers/config +source /installers/config $APT_GET tzdata echo $DEFAULT_TZ > /etc/timezone \ No newline at end of file diff --git a/marshall/installers/050_runit.sh b/marshall/installers/050_runit.sh index 6ac1e7a..3b66398 100644 --- a/marshall/installers/050_runit.sh +++ b/marshall/installers/050_runit.sh @@ -1,4 +1,4 @@ #!/bin/bash -source /app/installers/config +source /installers/config $APT_GET \ runit diff --git a/marshall/installers/100_cron.sh b/marshall/installers/100_cron.sh index 36e9436..1eb7f64 100644 --- a/marshall/installers/100_cron.sh +++ b/marshall/installers/100_cron.sh @@ -1,11 +1,11 @@ #!/bin/bash -source /app/installers/config +source /installers/config $APT_GET cron chmod 600 /etc/crontab -mkdir /etc/service/cron -mv /app/etc/service/cron/cron.runit /etc/service/cron/run +mkdir -p /etc/service/cron +mv /etc/service/cron/cron.runit /etc/service/cron/run chmod +x /etc/service/cron/run # Fix cron issues in 0.9.19, see also #345: https://github.com/phusion/baseimage-docker/issues/345 sed -i 's/^\s*session\s\+required\s\+pam_loginuid.so/# &/' /etc/pam.d/cron diff --git a/marshall/installers/101_rsyslog.sh b/marshall/installers/101_rsyslog.sh index 3243220..89f357e 100644 --- a/marshall/installers/101_rsyslog.sh +++ b/marshall/installers/101_rsyslog.sh @@ -1,7 +1,7 @@ #!/bin/bash -source /app/installers/config +source /installers/config $APT_GET rsyslog -mkdir /etc/service/rsyslog -mv /app/etc/service/rsyslog/rsyslog.runit /etc/service/rsyslog/run +mkdir -p /etc/service/rsyslog +mv /etc/service/rsyslog/rsyslog.runit /etc/service/rsyslog/run chmod +x /etc/service/rsyslog/run \ No newline at end of file diff --git a/marshall/installers/900_utils.sh b/marshall/installers/900_utils.sh index ce5dc79..175d459 100644 --- a/marshall/installers/900_utils.sh +++ b/marshall/installers/900_utils.sh @@ -1,5 +1,5 @@ #!/bin/bash -source /app/installers/config +source /installers/config $APT_GET \ inetutils-ping \ diff --git a/marshall/installers/901_package_report.sh b/marshall/installers/901_package_report.sh index fa85aa9..b18c12d 100644 --- a/marshall/installers/901_package_report.sh +++ b/marshall/installers/901_package_report.sh @@ -1,3 +1,2 @@ #!/bin/bash -mv /app/usr/bin/package-report /usr/bin/package-report chmod +x /usr/bin/package-report \ No newline at end of file diff --git a/marshall/installers/999_cleanup.sh b/marshall/installers/999_cleanup.sh index 2ef1603..cace32d 100644 --- a/marshall/installers/999_cleanup.sh +++ b/marshall/installers/999_cleanup.sh @@ -1,5 +1,5 @@ #!/bin/bash -source /app/installers/config +source /installers/config cd / apt-get autoremove -y apt-get clean diff --git a/marshall/installers/install b/marshall/installers/install index 5a02f9d..6efdbe3 100644 --- a/marshall/installers/install +++ b/marshall/installers/install @@ -2,7 +2,7 @@ set -e -for file in /app/installers/*.sh +for file in /installers/*.sh do /bin/bash $file diff --git a/nodejs/.gitignore b/nodejs/.gitignore deleted file mode 100644 index fa7be77..0000000 --- a/nodejs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -Dockerfile.node* \ No newline at end of file diff --git a/nodejs/Dockerfile b/nodejs/Dockerfile deleted file mode 100644 index e2d0663..0000000 --- a/nodejs/Dockerfile +++ /dev/null @@ -1,100 +0,0 @@ -FROM gone/marshall:latest AS nodejs - -#RUN groupadd --gid 1000 node \ -# && useradd --uid 1000 --gid node --shell /bin/bash --create-home node - -ENV NODE_VERSION={{NODE_VERSION}} \ - YARN_VERSION={{YARN_VERSION}} \ - PATH="/app/node_modules/.bin:${PATH}" - -RUN mkdir ~/.gnupg && \ - echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf && \ - apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - lsb-core \ - gnupg \ - && \ - \ - ARCH= && \ - dpkgArch="$(dpkg --print-architecture)" && \ - case "${dpkgArch##*-}" in \ - amd64) ARCH='x64';; \ - ppc64el) ARCH='ppc64le';; \ - s390x) ARCH='s390x';; \ - arm64) ARCH='arm64';; \ - armhf) ARCH='armv7l';; \ - i386) ARCH='x86';; \ - *) echo "unsupported architecture"; exit 1 ;; \ - esac \ - # gpg keys listed at https://github.com/nodejs/node#release-keys - && set -ex \ - && for key in \ - 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ - FD3A5288F042B6850C66B31F09FE44734EB7990E \ - 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ - DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ - C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ - B9AE9905FFD7803F25714661B63B535A4C206CA9 \ - 77984A986EBC2AA786BC0F66B01FBB92821C587A \ - 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ - 4ED778F539E3634C779C87C6D7062848A1AB005C \ - A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ - B9E2F5981AA6E0CD28160D9FF13993A75599653C \ - ; do \ - gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ - gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ - gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ - done \ - && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \ - && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ - && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ - && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ - && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ - && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ - && set -ex \ - && for key in \ - 6A010C5166006599AA17F08146C2130DFD2497F5 \ - ; do \ - gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ - gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ - gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ - done \ - && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ - && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ - && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ - && mkdir -p /opt \ - && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \ - && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \ - && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \ - && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ - \ - && apt-get autoremove -y \ - && apt-get clean \ - && rm -rf \ - /var/lib/apt/lists/* \ - /tmp/* \ - /var/tmp/* - -FROM nodejs AS nodejs-compiler - -RUN apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - python \ - build-essential \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf \ - /var/lib/apt/lists/* \ - /tmp/* \ - /var/tmp/* - -FROM nodejs AS nodejs-onbuild - -ONBUILD ADD ./ /app - -FROM nodejs-compiler AS nodejs-compiler-onbuild - -ONBUILD ADD ./ /app - diff --git a/php+apache/.gitignore b/php+apache/.gitignore deleted file mode 100644 index 7ee7933..0000000 --- a/php+apache/.gitignore +++ /dev/null @@ -1 +0,0 @@ -Dockerfile.php* \ No newline at end of file diff --git a/php+apache/Dockerfile b/php+apache/Dockerfile deleted file mode 100644 index a47986e..0000000 --- a/php+apache/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -FROM gone/php:core-build -RUN apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - apache2 \ - libapache2-mod-php{{PHPVERSION}} \ - && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ - \ - sed -i "s/upload_max_filesize.*/upload_max_filesize = 1024M/g" /etc/php/{{PHPVERSION}}/apache2/php.ini && \ - sed -i "s/post_max_size.*/post_max_size = 1024M/g" /etc/php/{{PHPVERSION}}/apache2/php.ini && \ - sed -i "s/max_execution_time.*/max_execution_time = 0/g" /etc/php/{{PHPVERSION}}/apache2/php.ini && \ - sed -i "s/variables_order.*/variables_order = \"EGPCS\"/g" /etc/php/{{PHPVERSION}}/apache2/php.ini && \ - sed -i "s/error_reporting.*/error_reporting = E_ALL \& \~E_DEPRECATED \& \~E_STRICT \& \~E_CORE_WARNING/g" /etc/php/{{PHPVERSION}}/apache2/php.ini && \ - cp /etc/php/{{PHPVERSION}}/apache2/php.ini /etc/php/{{PHPVERSION}}/cli/php.ini && \ - sed -i "s/ServerSignature On/ServerSignature Off/g" /etc/apache2/conf-enabled/security.conf && \ - sed -i "s/ServerTokens OS/ServerTokens Prod/g" /etc/apache2/conf-enabled/security.conf - -# Expose ports. -EXPOSE 80 - -# Create a healthcheck that makes sure our httpd is up -HEALTHCHECK --interval=30s --timeout=3s \ - CMD curl -f http://localhost/ || exit 1 - -COPY . /app -RUN rm -fr /var/www/html && \ - ln -s /app /var/www/html && \ - mv ApacheConfig.conf /etc/apache2/sites-enabled/000-default.conf && \ - mv envvars /etc/apache2/ && \ - mv apache2.conf /etc/apache2/ && \ - mkdir /etc/service/apache && \ - mkdir /etc/service/show_logs && \ - mv apache.runit /etc/service/apache/run && \ - mv show_logs.runit /etc/service/show_logs/run && \ - chmod +x /etc/service/*/run && \ - rm /app/* && \ - a2enmod rewrite - -# On build, add anything in with Dockerfile into /app -ONBUILD ADD ./ /app - -# If composer.json/composer.lock exist, do a composer install. -ONBUILD RUN composer install --ignore-platform-reqs; exit 0 -ONBUILD RUN composer dumpautoload -o; exit 0 -ONBUILD RUN /usr/bin/install-report \ No newline at end of file diff --git a/php+cli/.gitignore b/php+cli/.gitignore deleted file mode 100644 index 7ee7933..0000000 --- a/php+cli/.gitignore +++ /dev/null @@ -1 +0,0 @@ -Dockerfile.php* \ No newline at end of file diff --git a/php+cli/Dockerfile b/php+cli/Dockerfile deleted file mode 100644 index 939525b..0000000 --- a/php+cli/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -FROM $FROM -RUN apt-get -qq update && \ - apt-get -qy upgrade && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -# Install a funky cool repl. -RUN composer global require -q psy/psysh:@stable && \ - ln -s /root/.composer/vendor/psy/psysh/bin/psysh /usr/local/bin/repl && \ - /usr/local/bin/repl -v - -COPY psysh-config.php /root/.config/psysh/config.php - -# On build, add anything in with Dockerfile into /app -ONBUILD ADD ./ /app - -# If composer.json/composer.lock exist, do a composer install. -ONBUILD RUN composer install; exit 0 -ONBUILD RUN composer dumpautoload -o; exit 0 -ONBUILD RUN /usr/bin/install-report \ No newline at end of file diff --git a/php+nginx/.gitignore b/php+nginx/.gitignore deleted file mode 100644 index a5bd119..0000000 --- a/php+nginx/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -Dockerfile.php* -configure-nginx.php*.sh \ No newline at end of file diff --git a/php+nginx/Dockerfile b/php+nginx/Dockerfile deleted file mode 100644 index 0ce77c5..0000000 --- a/php+nginx/Dockerfile +++ /dev/null @@ -1,62 +0,0 @@ -FROM gone/php:core-build - -ENV PHPFPM_MAX_CHILDREN=5 - -RUN apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - lsb-core \ - gnupg \ - && \ - sh -c 'echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu $(lsb_release -sc) main" \ - > /etc/apt/sources.list.d/nginx-stable.list' && \ - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C && \ - apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - nginx \ - php{{PHPVERSION}}-fpm \ - && \ - apt-get remove -yq \ - lsb-core \ - cups-common \ - software-properties-common \ - python-apt-common \ - python3-software-properties \ - python3.5 python3.5-minimal libpython3.5-minimal \ - && \ - apt-get autoremove -y && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -# Expose ports. -EXPOSE 80 - -# Create a healthcheck that makes sure our httpd is up -HEALTHCHECK --interval=30s --timeout=3s \ - CMD curl -f http://localhost/ || exit 1 - -COPY . /app -RUN bash /app/configure-nginx.php{{PHPVERSION}}.sh && \ - rm -f /app/configure-nginx.php{{PHPVERSION}}.sh && \ - rm -fr /var/www/html && \ - ln -s /app /var/www/html && \ - mv NginxDefault /etc/nginx/sites-enabled/default && \ - mkdir /etc/service/nginx && \ - mkdir /etc/service/php-fpm && \ - mv nginx.runit /etc/service/nginx/run && \ - mv php-fpm.runit /etc/service/php-fpm/run && \ - chmod +x /etc/service/*/run && \ - rm /app/* && \ - sed -i "s/{{PHP}}/{{PHPVERSION}}/g" /etc/nginx/sites-enabled/default && \ - sed -i "s/{{PHP}}/{{PHPVERSION}}/g" /etc/service/php-fpm/run && \ - # Enable status panel - sed -i -e "s/;pm.status_path/pm.status_path/g" /etc/php/*/fpm/pool.d/www.conf && \ - # Using environment variables in config files works, it would seem. Neat! - sed -i -e "s/pm.max_children = 5/pm.max_children = \${PHPFPM_MAX_CHILDREN}/g" /etc/php/*/fpm/pool.d/www.conf - -# On build, add anything in with Dockerfile into /app -ONBUILD ADD ./ /app - -# If composer.json/composer.lock exist, do a composer install. -ONBUILD RUN composer install; exit 0 -ONBUILD RUN composer dumpautoload -o; exit 0 -ONBUILD RUN /usr/bin/install-report \ No newline at end of file diff --git a/php+nginx/configure-nginx.sh b/php+nginx/configure-nginx.sh deleted file mode 100755 index c65c757..0000000 --- a/php+nginx/configure-nginx.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -sed -i "s/cgi.fix_pathinfo.*/cgi.fix_pathinfo=0/g" /etc/php/{{PHPVERSION}}/fpm/php.ini -sed -i "s/upload_max_filesize.*/upload_max_filesize = 1024M/g" /etc/php/{{PHPVERSION}}/fpm/php.ini -sed -i "s/post_max_size.*/post_max_size = 1024M/g" /etc/php/{{PHPVERSION}}/fpm/php.ini -sed -i "s/max_execution_time.*/max_execution_time = 0/g" /etc/php/{{PHPVERSION}}/fpm/php.ini -sed -i "s/variables_order.*/variables_order = \"EGPCS\"/g" /etc/php/{{PHPVERSION}}/fpm/php.ini -sed -i "s/error_reporting.*/error_reporting = E_ALL \& \~E_DEPRECATED \& \~E_STRICT \& \~E_CORE_WARNING/g" /etc/php/{{PHPVERSION}}/fpm/php.ini -cp /etc/php/{{PHPVERSION}}/fpm/php.ini /etc/php/{{PHPVERSION}}/cli/php.ini -if [[ "{{PHPVERSION}}" = "5.6" ]] ; then - # Skip setting clear_env - echo "Skipping clear_env"; -else - echo "clear_env=no" >> /etc/php/{{PHPVERSION}}/fpm/php-fpm.conf - echo "clear_env=no" >> /etc/php/{{PHPVERSION}}/fpm/pool.d/www.ini -fi -mkdir /run/php diff --git a/php-core/Dockerfile.php56 b/php-core/Dockerfile.php56 deleted file mode 100644 index a8f6521..0000000 --- a/php-core/Dockerfile.php56 +++ /dev/null @@ -1,58 +0,0 @@ -FROM gone/marshall:latest -COPY install-report.sh /usr/bin/install-report -RUN apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - python3-software-properties \ - software-properties-common \ - && \ - add-apt-repository -y ppa:ondrej/php && \ - apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - mysql-client \ - php-apcu \ - php-xdebug\ - php5.6-bcmath \ - php5.6-bz2 \ - php5.6-cli \ - php5.6-curl \ - php5.6-gd \ - php5.6-imap \ - php5.6-intl \ - php5.6-json \ - php5.6-ldap \ - php5.6-mbstring \ - php5.6-mcrypt \ - php5.6-memcache \ - php5.6-memcached \ - php5.6-mongodb \ - php5.6-mysql \ - php5.6-opcache \ - php5.6-pgsql \ - php5.6-pspell \ - php5.6-redis \ - php5.6-soap \ - php5.6-sqlite \ - php5.6-xml \ - php5.6-zip \ - postgresql-client \ - && \ - apt-get remove -yq \ - software-properties-common \ - python-apt-common \ - python3-software-properties \ - python3.5 python3.5-minimal libpython3.5-minimal \ - && \ - apt-get autoremove -y && \ - rm -rf \ - /usr/bin/mysqlslap \ - /usr/bin/mysqldump \ - /usr/bin/mysqlpump \ - /usr/bin/mysql_embedded \ - && \ - curl -sS https://getcomposer.org/installer | php && \ - mv composer.phar /usr/local/bin/composer && \ - composer global require -q hirak/prestissimo && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ - chmod +x /usr/bin/install-report && \ - /usr/bin/install-report diff --git a/php-core/Dockerfile.php70 b/php-core/Dockerfile.php70 deleted file mode 100644 index a072820..0000000 --- a/php-core/Dockerfile.php70 +++ /dev/null @@ -1,58 +0,0 @@ -FROM gone/marshall:latest -COPY install-report.sh /usr/bin/install-report -RUN apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - python3-software-properties \ - software-properties-common \ - && \ - add-apt-repository -y ppa:ondrej/php && \ - apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - mysql-client \ - php-apcu \ - php-xdebug\ - php7.0-bcmath \ - php7.0-bz2 \ - php7.0-cli \ - php7.0-curl \ - php7.0-gd \ - php7.0-imap \ - php7.0-intl \ - php7.0-json \ - php7.0-ldap \ - php7.0-mbstring \ - php7.0-mcrypt \ - php7.0-memcache \ - php7.0-memcached \ - php7.0-mongodb \ - php7.0-mysql \ - php7.0-opcache \ - php7.0-pgsql \ - php7.0-pspell \ - php7.0-redis \ - php7.0-soap \ - php7.0-sqlite \ - php7.0-xml \ - php7.0-zip \ - postgresql-client \ - && \ - apt-get remove -yq \ - software-properties-common \ - python-apt-common \ - python3-software-properties \ - python3.5 python3.5-minimal libpython3.5-minimal \ - && \ - apt-get autoremove -y && \ - rm -rf \ - /usr/bin/mysqlslap \ - /usr/bin/mysqldump \ - /usr/bin/mysqlpump \ - /usr/bin/mysql_embedded \ - && \ - curl -sS https://getcomposer.org/installer | php && \ - mv composer.phar /usr/local/bin/composer && \ - composer global require -q hirak/prestissimo && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ - chmod +x /usr/bin/install-report && \ - /usr/bin/install-report diff --git a/php-core/Dockerfile.php71 b/php-core/Dockerfile.php71 deleted file mode 100644 index f0f8e19..0000000 --- a/php-core/Dockerfile.php71 +++ /dev/null @@ -1,58 +0,0 @@ -FROM gone/marshall:latest -COPY install-report.sh /usr/bin/install-report -RUN apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - python3-software-properties \ - software-properties-common \ - && \ - add-apt-repository -y ppa:ondrej/php && \ - apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - mysql-client \ - php-apcu \ - php-xdebug\ - php7.1-bcmath \ - php7.1-bz2 \ - php7.1-cli \ - php7.1-curl \ - php7.1-gd \ - php7.1-imap \ - php7.1-intl \ - php7.1-json \ - php7.1-ldap \ - php7.1-mbstring \ - php7.1-mcrypt \ - php7.1-memcache \ - php7.1-memcached \ - php7.1-mongodb \ - php7.1-mysql \ - php7.1-opcache \ - php7.1-pgsql \ - php7.1-pspell \ - php7.1-redis \ - php7.1-soap \ - php7.1-sqlite \ - php7.1-xml \ - php7.1-zip \ - postgresql-client \ - && \ - apt-get remove -yq \ - software-properties-common \ - python-apt-common \ - python3-software-properties \ - python3.5 python3.5-minimal libpython3.5-minimal \ - && \ - apt-get autoremove -y && \ - rm -rf \ - /usr/bin/mysqlslap \ - /usr/bin/mysqldump \ - /usr/bin/mysqlpump \ - /usr/bin/mysql_embedded \ - && \ - curl -sS https://getcomposer.org/installer | php && \ - mv composer.phar /usr/local/bin/composer && \ - composer global require -q hirak/prestissimo && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ - chmod +x /usr/bin/install-report && \ - /usr/bin/install-report diff --git a/php-core/Dockerfile.php72 b/php-core/Dockerfile.php72 deleted file mode 100644 index d94c987..0000000 --- a/php-core/Dockerfile.php72 +++ /dev/null @@ -1,57 +0,0 @@ -FROM gone/marshall:latest -COPY install-report.sh /usr/bin/install-report -RUN apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - python3-software-properties \ - software-properties-common \ - && \ - add-apt-repository -y ppa:ondrej/php && \ - apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - mysql-client \ - php-apcu \ - php-xdebug\ - php7.2-bcmath \ - php7.2-bz2 \ - php7.2-cli \ - php7.2-curl \ - php7.2-gd \ - php7.2-imap \ - php7.2-intl \ - php7.2-json \ - php7.2-ldap \ - php7.2-mbstring \ - php7.2-memcache \ - php7.2-memcached \ - php7.2-mongodb \ - php7.2-mysql \ - php7.2-opcache \ - php7.2-pgsql \ - php7.2-pspell \ - php7.2-redis \ - php7.2-soap \ - php7.2-sqlite \ - php7.2-xml \ - php7.2-zip \ - postgresql-client \ - && \ - apt-get remove -yq \ - software-properties-common \ - python-apt-common \ - python3-software-properties \ - python3.5 python3.5-minimal libpython3.5-minimal \ - && \ - apt-get autoremove -y && \ - rm -rf \ - /usr/bin/mysqlslap \ - /usr/bin/mysqldump \ - /usr/bin/mysqlpump \ - /usr/bin/mysql_embedded \ - && \ - curl -sS https://getcomposer.org/installer | php && \ - mv composer.phar /usr/local/bin/composer && \ - composer global require -q hirak/prestissimo && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ - chmod +x /usr/bin/install-report && \ - /usr/bin/install-report diff --git a/php-core/Dockerfile.php73 b/php-core/Dockerfile.php73 deleted file mode 100644 index 2e34080..0000000 --- a/php-core/Dockerfile.php73 +++ /dev/null @@ -1,57 +0,0 @@ -FROM gone/marshall:latest -COPY install-report.sh /usr/bin/install-report -RUN apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - python3-software-properties \ - software-properties-common \ - && \ - add-apt-repository -y ppa:ondrej/php && \ - apt-get -qq update && \ - apt-get -yq install --no-install-recommends \ - mysql-client \ - php-apcu \ - php-xdebug\ - php7.3-bcmath \ - php7.3-bz2 \ - php7.3-cli \ - php7.3-curl \ - php7.3-gd \ - php7.3-imap \ - php7.3-intl \ - php7.3-json \ - php7.3-ldap \ - php7.3-mbstring \ - php7.3-memcache \ - php7.3-memcached \ - php7.3-mongodb \ - php7.3-mysql \ - php7.3-opcache \ - php7.3-pgsql \ - php7.3-pspell \ - php7.3-redis \ - php7.3-soap \ - php7.3-sqlite \ - php7.3-xml \ - php7.3-zip \ - postgresql-client \ - && \ - apt-get remove -yq \ - software-properties-common \ - python-apt-common \ - python3-software-properties \ - python3.5 python3.5-minimal libpython3.5-minimal \ - && \ - apt-get autoremove -y && \ - rm -rf \ - /usr/bin/mysqlslap \ - /usr/bin/mysqldump \ - /usr/bin/mysqlpump \ - /usr/bin/mysql_embedded \ - && \ - curl -sS https://getcomposer.org/installer | php && \ - mv composer.phar /usr/local/bin/composer && \ - composer global require -q hirak/prestissimo && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ - chmod +x /usr/bin/install-report && \ - /usr/bin/install-report diff --git a/test-app/Dockerfile.apache-php56 b/test-app/Dockerfile.apache-php56 deleted file mode 100644 index 6519678..0000000 --- a/test-app/Dockerfile.apache-php56 +++ /dev/null @@ -1 +0,0 @@ -FROM gone/php:apache-php5.6 \ No newline at end of file diff --git a/test-app/Dockerfile.apache-php70 b/test-app/Dockerfile.apache-php70 deleted file mode 100644 index 3d9a3a5..0000000 --- a/test-app/Dockerfile.apache-php70 +++ /dev/null @@ -1 +0,0 @@ -FROM gone/php:apache-php7.0 \ No newline at end of file diff --git a/test-app/Dockerfile.apache-php71 b/test-app/Dockerfile.apache-php71 deleted file mode 100644 index 560a83c..0000000 --- a/test-app/Dockerfile.apache-php71 +++ /dev/null @@ -1 +0,0 @@ -FROM gone/php:apache-php7.1 \ No newline at end of file diff --git a/test-app/Dockerfile.apache-php72 b/test-app/Dockerfile.apache-php72 deleted file mode 100644 index f6eb98a..0000000 --- a/test-app/Dockerfile.apache-php72 +++ /dev/null @@ -1 +0,0 @@ -FROM gone/php:apache-php7.2 \ No newline at end of file diff --git a/test-app/Dockerfile.apache-php73 b/test-app/Dockerfile.apache-php73 deleted file mode 100644 index 2a82e19..0000000 --- a/test-app/Dockerfile.apache-php73 +++ /dev/null @@ -1 +0,0 @@ -FROM gone/php:apache-php7.3 \ No newline at end of file diff --git a/test-app/Dockerfile.nginx-php56 b/test-app/Dockerfile.nginx-php56 deleted file mode 100644 index fdd48b6..0000000 --- a/test-app/Dockerfile.nginx-php56 +++ /dev/null @@ -1 +0,0 @@ -FROM gone/php:nginx-php5.6 \ No newline at end of file diff --git a/test-app/Dockerfile.nginx-php70 b/test-app/Dockerfile.nginx-php70 deleted file mode 100644 index 1d5e8e8..0000000 --- a/test-app/Dockerfile.nginx-php70 +++ /dev/null @@ -1 +0,0 @@ -FROM gone/php:nginx-php7.0 \ No newline at end of file diff --git a/test-app/Dockerfile.nginx-php71 b/test-app/Dockerfile.nginx-php71 deleted file mode 100644 index ddfd728..0000000 --- a/test-app/Dockerfile.nginx-php71 +++ /dev/null @@ -1 +0,0 @@ -FROM gone/php:nginx-php7.1 \ No newline at end of file diff --git a/test-app/Dockerfile.nginx-php72 b/test-app/Dockerfile.nginx-php72 deleted file mode 100644 index 5e39e0b..0000000 --- a/test-app/Dockerfile.nginx-php72 +++ /dev/null @@ -1 +0,0 @@ -FROM gone/php:nginx-php7.2 \ No newline at end of file diff --git a/test-app/Dockerfile.nginx-php73 b/test-app/Dockerfile.nginx-php73 deleted file mode 100644 index caff4b0..0000000 --- a/test-app/Dockerfile.nginx-php73 +++ /dev/null @@ -1 +0,0 @@ -FROM gone/php:nginx-php7.3 \ No newline at end of file diff --git a/test-app/public/index.php b/test-app/public/index.php deleted file mode 100644 index bfd863b..0000000 --- a/test-app/public/index.php +++ /dev/null @@ -1,2 +0,0 @@ -