From a6236b19c7e825e4e96bbb1819c80dfc4db65a12 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 3 Nov 2019 21:46:15 +0100 Subject: [PATCH] Fix work images --- Dockerfiles/work/Dockerfile-5.2 | 124 ++++-- Dockerfiles/work/Dockerfile-5.3 | 148 ++++--- Dockerfiles/work/Dockerfile-5.4 | 160 ++++--- Dockerfiles/work/Dockerfile-5.5 | 172 +++++--- Dockerfiles/work/Dockerfile-5.6 | 175 +++++--- Dockerfiles/work/Dockerfile-7.0 | 175 +++++--- Dockerfiles/work/Dockerfile-7.1 | 177 +++++--- Dockerfiles/work/Dockerfile-7.2 | 177 +++++--- Dockerfiles/work/Dockerfile-7.3 | 174 +++++--- Dockerfiles/work/Dockerfile-7.4 | 169 +++++--- Dockerfiles/work/Dockerfile-8.0 | 136 +++--- build/ansible/DOCKERFILES/Dockerfile-work.j2 | 427 ++++++++++++------- build/ansible/group_vars/all/all-ansible.yml | 2 +- build/ansible/group_vars/all/work.yml | 48 ++- 14 files changed, 1456 insertions(+), 808 deletions(-) diff --git a/Dockerfiles/work/Dockerfile-5.2 b/Dockerfiles/work/Dockerfile-5.2 index c88c389..49d6473 100644 --- a/Dockerfiles/work/Dockerfile-5.2 +++ b/Dockerfiles/work/Dockerfile-5.2 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \ && echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ @@ -50,6 +51,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -125,7 +127,7 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# pip +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -134,7 +136,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -151,7 +154,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -160,17 +164,20 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -181,12 +188,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -208,15 +217,18 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ @@ -228,7 +240,8 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -248,6 +261,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -282,31 +296,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -323,17 +349,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl - && gem install mdl \ -# scss_lint + \ +# -------------------- mdl -------------------- + && gem install mdl -v 0.5.0 \ + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -347,13 +378,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -403,14 +437,9 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && git-flow version | grep -E '[.0-9]+' \ && linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ @@ -418,12 +447,15 @@ RUN set -eux \ && phpcs --version | grep -E 'version [.0-9]+' \ && phpcbf --version | grep -E 'version [.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ - \ - \ + \ +# -------------------- Composer -------------------- + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -433,10 +465,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/Dockerfiles/work/Dockerfile-5.3 b/Dockerfiles/work/Dockerfile-5.3 index de45ed4..ec41c53 100644 --- a/Dockerfiles/work/Dockerfile-5.3 +++ b/Dockerfiles/work/Dockerfile-5.3 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \ && echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ @@ -50,6 +51,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -125,9 +127,10 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# composer +# -------------------- composer -------------------- && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ -# pip + \ +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -136,7 +139,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -153,7 +157,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -162,7 +167,8 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# drush7 + \ +# -------------------- drush7 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \ && cd /usr/local/src/drush7 \ && git checkout 7.4.0 \ @@ -175,17 +181,20 @@ RUN set -eux \ && rm -rf /usr/local/src/drush7/examples \ && rm -rf /usr/local/src/drush7/misc \ \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -196,12 +205,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -223,7 +234,8 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phalcon + \ +# -------------------- phalcon -------------------- && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout v2.0.7 \ @@ -234,23 +246,28 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# php-cs-fixer + \ +# -------------------- php-cs-fixer -------------------- && curl -sS -L https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \ && chmod +x /usr/local/bin/php-cs-fixer \ \ -# phpunit + \ +# -------------------- phpunit -------------------- && curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \ && chmod +x /usr/local/bin/phpunit \ \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ @@ -262,10 +279,12 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# wpcli + \ +# -------------------- wpcli -------------------- && curl https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -285,6 +304,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -306,12 +326,14 @@ RUN set -eux \ ### Install Composer (PHP) ### RUN set -eux \ -# codeception +# -------------------- codeception -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \ -# prestissimo + \ +# -------------------- prestissimo -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require hirak/prestissimo \ \ + \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ @@ -324,31 +346,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -365,17 +399,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl - && gem install mdl \ -# scss_lint + \ +# -------------------- mdl -------------------- + && gem install mdl -v 0.5.0 \ + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -389,13 +428,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -445,15 +487,10 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \ && git-flow version | grep -E '[.0-9]+' \ && linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \ @@ -466,13 +503,16 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ && wp --allow-root --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Composer -------------------- && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ - \ + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -482,10 +522,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index c236a17..f9b6edb 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \ && echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ @@ -50,6 +51,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -125,9 +127,10 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# composer +# -------------------- composer -------------------- && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ -# pip + \ +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -136,7 +139,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -153,7 +157,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -162,10 +167,12 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# deployer + \ +# -------------------- deployer -------------------- && curl -sS https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \ -# drush7 + \ +# -------------------- drush7 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \ && cd /usr/local/src/drush7 \ && git checkout 7.4.0 \ @@ -178,7 +185,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush7/examples \ && rm -rf /usr/local/src/drush7/misc \ \ -# drush8 + \ +# -------------------- drush8 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \ && cd /usr/local/src/drush8 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -191,13 +199,15 @@ RUN set -eux \ && rm -rf /usr/local/src/drush8/examples \ && rm -rf /usr/local/src/drush8/misc \ \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# laravel + \ +# -------------------- laravel -------------------- && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v1.3.7 \ @@ -207,11 +217,13 @@ RUN set -eux \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -222,12 +234,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -249,7 +263,8 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phalcon + \ +# -------------------- phalcon -------------------- && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout v2.0.9 \ @@ -260,26 +275,32 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# php-cs-fixer + \ +# -------------------- php-cs-fixer -------------------- && curl -sS -L https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \ && chmod +x /usr/local/bin/php-cs-fixer \ \ -# phpunit + \ +# -------------------- phpunit -------------------- && curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \ && chmod +x /usr/local/bin/phpunit \ \ -# symfony + \ +# -------------------- symfony -------------------- && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ @@ -291,10 +312,12 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# wpcli + \ +# -------------------- wpcli -------------------- && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -314,6 +337,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -335,12 +359,14 @@ RUN set -eux \ ### Install Composer (PHP) ### RUN set -eux \ -# codeception +# -------------------- codeception -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \ -# prestissimo + \ +# -------------------- prestissimo -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require hirak/prestissimo \ \ + \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ @@ -353,31 +379,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -394,17 +432,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl - && gem install mdl \ -# scss_lint + \ +# -------------------- mdl -------------------- + && gem install mdl -v 0.5.0 \ + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -418,13 +461,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -474,15 +520,10 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \ && drush8 --version | grep -E '8[.0-9]+\s*$' \ @@ -499,13 +540,16 @@ RUN set -eux \ && symfony --version | grep -E 'version\s*[.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ && wp --allow-root --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Composer -------------------- && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ - \ + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -515,10 +559,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index 15932da..d75f615 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \ && echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ @@ -50,6 +51,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -125,9 +127,10 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# composer +# -------------------- composer -------------------- && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ -# pip + \ +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -136,7 +139,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -153,7 +157,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -162,10 +167,12 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# deployer + \ +# -------------------- deployer -------------------- && curl -sS https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \ -# drush7 + \ +# -------------------- drush7 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \ && cd /usr/local/src/drush7 \ && git checkout 7.4.0 \ @@ -178,7 +185,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush7/examples \ && rm -rf /usr/local/src/drush7/misc \ \ -# drush8 + \ +# -------------------- drush8 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \ && cd /usr/local/src/drush8 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -191,16 +199,19 @@ RUN set -eux \ && rm -rf /usr/local/src/drush8/examples \ && rm -rf /usr/local/src/drush8/misc \ \ -# drupalconsole + \ +# -------------------- drupalconsole -------------------- && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# laravel + \ +# -------------------- laravel -------------------- && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v2.0.0 \ @@ -210,11 +221,13 @@ RUN set -eux \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -225,12 +238,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -252,7 +267,8 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phalcon + \ +# -------------------- phalcon -------------------- && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -263,26 +279,32 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# php-cs-fixer + \ +# -------------------- php-cs-fixer -------------------- && curl -sS -L https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \ && chmod +x /usr/local/bin/php-cs-fixer \ \ -# phpunit + \ +# -------------------- phpunit -------------------- && curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \ && chmod +x /usr/local/bin/phpunit \ \ -# symfony + \ +# -------------------- symfony -------------------- && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ @@ -294,10 +316,12 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# wpcli + \ +# -------------------- wpcli -------------------- && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -317,6 +341,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -338,21 +363,26 @@ RUN set -eux \ ### Install Composer (PHP) ### RUN set -eux \ -# asgardcms +# -------------------- asgardcms -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \ -# codeception + \ +# -------------------- codeception -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \ -# lumen + \ +# -------------------- lumen -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \ && ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \ -# photon + \ +# -------------------- photon -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require photoncms/installer \ && ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \ -# prestissimo + \ +# -------------------- prestissimo -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require hirak/prestissimo \ \ + \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ @@ -365,31 +395,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -406,17 +448,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl - && gem install mdl \ -# scss_lint + \ +# -------------------- mdl -------------------- + && gem install mdl -v 0.5.0 \ + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -430,13 +477,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -486,15 +536,10 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \ && drush8 --version | grep -E '8[.0-9]+\s*$' \ @@ -512,16 +557,19 @@ RUN set -eux \ && symfony --version | grep -E 'version\s*[.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ && wp --allow-root --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Composer -------------------- && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \ && photon --version | grep -E 'Installer [.0-9]+' \ - \ + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -531,10 +579,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index 3dbbe01..ff2da43 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ @@ -49,6 +50,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -124,9 +126,10 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# composer +# -------------------- composer -------------------- && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ -# pip + \ +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -135,7 +138,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -152,7 +156,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -161,10 +166,12 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# deployer + \ +# -------------------- deployer -------------------- && curl -sS https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \ -# drush7 + \ +# -------------------- drush7 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \ && cd /usr/local/src/drush7 \ && git checkout 7.4.0 \ @@ -177,7 +184,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush7/examples \ && rm -rf /usr/local/src/drush7/misc \ \ -# drush8 + \ +# -------------------- drush8 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \ && cd /usr/local/src/drush8 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -190,7 +198,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush8/examples \ && rm -rf /usr/local/src/drush8/misc \ \ -# drush9 + \ +# -------------------- drush9 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \ && cd /usr/local/src/drush9 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -203,16 +212,19 @@ RUN set -eux \ && rm -rf /usr/local/src/drush9/examples \ && rm -rf /usr/local/src/drush9/misc \ \ -# drupalconsole + \ +# -------------------- drupalconsole -------------------- && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# laravel + \ +# -------------------- laravel -------------------- && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v2.0.0 \ @@ -222,11 +234,13 @@ RUN set -eux \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -237,12 +251,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -264,7 +280,8 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phalcon + \ +# -------------------- phalcon -------------------- && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -275,26 +292,32 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# php-cs-fixer + \ +# -------------------- php-cs-fixer -------------------- && curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \ && chmod +x /usr/local/bin/php-cs-fixer \ \ -# phpunit + \ +# -------------------- phpunit -------------------- && curl -qL https://phar.phpunit.de/phpunit-5.phar > /usr/local/bin/phpunit 2>/dev/null \ && chmod +x /usr/local/bin/phpunit \ \ -# symfony + \ +# -------------------- symfony -------------------- && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ @@ -306,10 +329,12 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# wpcli + \ +# -------------------- wpcli -------------------- && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -329,6 +354,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -350,21 +376,26 @@ RUN set -eux \ ### Install Composer (PHP) ### RUN set -eux \ -# asgardcms +# -------------------- asgardcms -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \ -# codeception + \ +# -------------------- codeception -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \ -# lumen + \ +# -------------------- lumen -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \ && ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \ -# photon + \ +# -------------------- photon -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require photoncms/installer \ && ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \ -# prestissimo + \ +# -------------------- prestissimo -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require hirak/prestissimo \ \ + \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ @@ -377,31 +408,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -418,17 +461,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl - && gem install mdl \ -# scss_lint + \ +# -------------------- mdl -------------------- + && gem install mdl -v 0.5.0 \ + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -442,13 +490,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -498,15 +549,10 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \ && drush8 --version | grep -E '8[.0-9]+\s*$' \ @@ -525,16 +571,19 @@ RUN set -eux \ && symfony --version | grep -E 'version\s*[.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ && wp --allow-root --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Composer -------------------- && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \ && photon --version | grep -E 'Installer [.0-9]+' \ - \ + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -544,10 +593,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index a02eb86..1c8ee18 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ @@ -49,6 +50,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -124,9 +126,10 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# composer +# -------------------- composer -------------------- && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ -# pip + \ +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -135,7 +138,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -152,7 +156,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -161,10 +166,12 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# deployer + \ +# -------------------- deployer -------------------- && curl -sS https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \ -# drush7 + \ +# -------------------- drush7 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \ && cd /usr/local/src/drush7 \ && git checkout 7.4.0 \ @@ -177,7 +184,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush7/examples \ && rm -rf /usr/local/src/drush7/misc \ \ -# drush8 + \ +# -------------------- drush8 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \ && cd /usr/local/src/drush8 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -190,7 +198,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush8/examples \ && rm -rf /usr/local/src/drush8/misc \ \ -# drush9 + \ +# -------------------- drush9 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \ && cd /usr/local/src/drush9 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -203,16 +212,19 @@ RUN set -eux \ && rm -rf /usr/local/src/drush9/examples \ && rm -rf /usr/local/src/drush9/misc \ \ -# drupalconsole + \ +# -------------------- drupalconsole -------------------- && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# laravel + \ +# -------------------- laravel -------------------- && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v2.0.0 \ @@ -222,11 +234,13 @@ RUN set -eux \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -237,12 +251,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -264,7 +280,8 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phalcon + \ +# -------------------- phalcon -------------------- && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -275,26 +292,32 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# php-cs-fixer + \ +# -------------------- php-cs-fixer -------------------- && curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \ && chmod +x /usr/local/bin/php-cs-fixer \ \ -# phpunit + \ +# -------------------- phpunit -------------------- && curl -qL https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit 2>/dev/null \ && chmod +x /usr/local/bin/phpunit \ \ -# symfony + \ +# -------------------- symfony -------------------- && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ @@ -306,10 +329,12 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# wpcli + \ +# -------------------- wpcli -------------------- && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -329,6 +354,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -350,21 +376,26 @@ RUN set -eux \ ### Install Composer (PHP) ### RUN set -eux \ -# asgardcms +# -------------------- asgardcms -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \ -# codeception + \ +# -------------------- codeception -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \ -# lumen + \ +# -------------------- lumen -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \ && ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \ -# photon + \ +# -------------------- photon -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require photoncms/installer \ && ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \ -# prestissimo + \ +# -------------------- prestissimo -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require hirak/prestissimo \ \ + \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ @@ -377,31 +408,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -418,17 +461,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl - && gem install mdl \ -# scss_lint + \ +# -------------------- mdl -------------------- + && gem install mdl -v 0.5.0 \ + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -442,13 +490,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -498,15 +549,10 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \ && drush8 --version | grep -E '8[.0-9]+\s*$' \ @@ -525,16 +571,19 @@ RUN set -eux \ && symfony --version | grep -E 'version\s*[.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ && wp --allow-root --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Composer -------------------- && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \ && photon --version | grep -E 'Installer [.0-9]+' \ - \ + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -544,10 +593,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index dad585d..4efc3bb 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ @@ -49,6 +50,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -84,7 +86,7 @@ RUN set -eux \ mongodb-org-shell \ mongodb-org-tools \ moreutils \ - mysql-client \ + mariadb-client \ nano \ net-tools \ netcat \ @@ -124,9 +126,10 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# composer +# -------------------- composer -------------------- && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ -# pip + \ +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -135,7 +138,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -152,7 +156,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -161,10 +166,12 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# deployer + \ +# -------------------- deployer -------------------- && curl -sS https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \ -# drush7 + \ +# -------------------- drush7 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \ && cd /usr/local/src/drush7 \ && git checkout 7.4.0 \ @@ -177,7 +184,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush7/examples \ && rm -rf /usr/local/src/drush7/misc \ \ -# drush8 + \ +# -------------------- drush8 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \ && cd /usr/local/src/drush8 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -190,7 +198,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush8/examples \ && rm -rf /usr/local/src/drush8/misc \ \ -# drush9 + \ +# -------------------- drush9 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \ && cd /usr/local/src/drush9 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -203,16 +212,19 @@ RUN set -eux \ && rm -rf /usr/local/src/drush9/examples \ && rm -rf /usr/local/src/drush9/misc \ \ -# drupalconsole + \ +# -------------------- drupalconsole -------------------- && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# laravel + \ +# -------------------- laravel -------------------- && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -222,11 +234,13 @@ RUN set -eux \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -237,12 +251,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -264,7 +280,8 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phalcon + \ +# -------------------- phalcon -------------------- && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -275,30 +292,36 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# php-cs-fixer + \ +# -------------------- php-cs-fixer -------------------- && curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \ && chmod +x /usr/local/bin/php-cs-fixer \ \ -# phpunit + \ +# -------------------- phpunit -------------------- && curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \ && chmod +x /usr/local/bin/phpunit \ \ -# symfony + \ +# -------------------- symfony -------------------- && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \ + libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \ && curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \ && dpkg -i /tmp/wkhtmltopdf.deb \ && rm -f /tmp/wkhtmltopdf.deb \ @@ -306,10 +329,12 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# wpcli + \ +# -------------------- wpcli -------------------- && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -329,6 +354,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -350,21 +376,26 @@ RUN set -eux \ ### Install Composer (PHP) ### RUN set -eux \ -# asgardcms +# -------------------- asgardcms -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \ -# codeception + \ +# -------------------- codeception -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \ -# lumen + \ +# -------------------- lumen -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \ && ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \ -# photon + \ +# -------------------- photon -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require photoncms/installer \ && ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \ -# prestissimo + \ +# -------------------- prestissimo -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require hirak/prestissimo \ \ + \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ @@ -377,31 +408,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -418,17 +461,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl + \ +# -------------------- mdl -------------------- && gem install mdl \ -# scss_lint + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -442,13 +490,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -498,15 +549,10 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \ && drush8 --version | grep -E '8[.0-9]+\s*$' \ @@ -525,16 +571,19 @@ RUN set -eux \ && symfony --version | grep -E 'version\s*[.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ && wp --allow-root --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Composer -------------------- && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \ && photon --version | grep -E 'Installer [.0-9]+' \ - \ + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -544,10 +593,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index 812bc31..18307fa 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ @@ -49,6 +50,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -84,7 +86,7 @@ RUN set -eux \ mongodb-org-shell \ mongodb-org-tools \ moreutils \ - mysql-client \ + mariadb-client \ nano \ net-tools \ netcat \ @@ -124,9 +126,10 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# composer +# -------------------- composer -------------------- && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ -# pip + \ +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -135,7 +138,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -152,7 +156,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -161,10 +166,12 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# deployer + \ +# -------------------- deployer -------------------- && curl -sS https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \ -# drush7 + \ +# -------------------- drush7 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \ && cd /usr/local/src/drush7 \ && git checkout 7.4.0 \ @@ -177,7 +184,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush7/examples \ && rm -rf /usr/local/src/drush7/misc \ \ -# drush8 + \ +# -------------------- drush8 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \ && cd /usr/local/src/drush8 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -190,7 +198,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush8/examples \ && rm -rf /usr/local/src/drush8/misc \ \ -# drush9 + \ +# -------------------- drush9 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \ && cd /usr/local/src/drush9 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -203,16 +212,19 @@ RUN set -eux \ && rm -rf /usr/local/src/drush9/examples \ && rm -rf /usr/local/src/drush9/misc \ \ -# drupalconsole + \ +# -------------------- drupalconsole -------------------- && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# laravel + \ +# -------------------- laravel -------------------- && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -222,11 +234,13 @@ RUN set -eux \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -237,12 +251,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -264,7 +280,8 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phalcon + \ +# -------------------- phalcon -------------------- && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -275,30 +292,36 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# php-cs-fixer + \ +# -------------------- php-cs-fixer -------------------- && curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \ && chmod +x /usr/local/bin/php-cs-fixer \ \ -# phpunit + \ +# -------------------- phpunit -------------------- && curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \ && chmod +x /usr/local/bin/phpunit \ \ -# symfony + \ +# -------------------- symfony -------------------- && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \ + libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \ && curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \ && dpkg -i /tmp/wkhtmltopdf.deb \ && rm -f /tmp/wkhtmltopdf.deb \ @@ -306,10 +329,12 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# wpcli + \ +# -------------------- wpcli -------------------- && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -329,6 +354,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -350,21 +376,26 @@ RUN set -eux \ ### Install Composer (PHP) ### RUN set -eux \ -# asgardcms +# -------------------- asgardcms -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \ -# codeception + \ +# -------------------- codeception -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \ -# lumen + \ +# -------------------- lumen -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \ && ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \ -# photon + \ +# -------------------- photon -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require photoncms/installer \ && ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \ -# prestissimo + \ +# -------------------- prestissimo -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require hirak/prestissimo \ \ + \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ @@ -377,31 +408,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -418,17 +461,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl + \ +# -------------------- mdl -------------------- && gem install mdl \ -# scss_lint + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -442,13 +490,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -498,15 +549,10 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \ && drush8 --version | grep -E '8[.0-9]+\s*$' \ @@ -525,16 +571,19 @@ RUN set -eux \ && symfony --version | grep -E 'version\s*[.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ && wp --allow-root --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Composer -------------------- && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \ && photon --version | grep -E 'Installer [.0-9]+' \ - \ + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -544,10 +593,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/Dockerfiles/work/Dockerfile-7.3 b/Dockerfiles/work/Dockerfile-7.3 index 8b1e1a9..ea1c105 100644 --- a/Dockerfiles/work/Dockerfile-7.3 +++ b/Dockerfiles/work/Dockerfile-7.3 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ @@ -49,6 +50,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -84,7 +86,7 @@ RUN set -eux \ mongodb-org-shell \ mongodb-org-tools \ moreutils \ - mysql-client \ + mariadb-client \ nano \ net-tools \ netcat \ @@ -124,9 +126,10 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# composer +# -------------------- composer -------------------- && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ -# pip + \ +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -135,7 +138,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -152,7 +156,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -161,10 +166,12 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# deployer + \ +# -------------------- deployer -------------------- && curl -sS https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \ -# drush7 + \ +# -------------------- drush7 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \ && cd /usr/local/src/drush7 \ && git checkout 7.4.0 \ @@ -177,7 +184,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush7/examples \ && rm -rf /usr/local/src/drush7/misc \ \ -# drush8 + \ +# -------------------- drush8 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \ && cd /usr/local/src/drush8 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -190,7 +198,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush8/examples \ && rm -rf /usr/local/src/drush8/misc \ \ -# drush9 + \ +# -------------------- drush9 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \ && cd /usr/local/src/drush9 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -203,16 +212,19 @@ RUN set -eux \ && rm -rf /usr/local/src/drush9/examples \ && rm -rf /usr/local/src/drush9/misc \ \ -# drupalconsole + \ +# -------------------- drupalconsole -------------------- && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# laravel + \ +# -------------------- laravel -------------------- && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -222,11 +234,13 @@ RUN set -eux \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -237,12 +251,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -264,30 +280,36 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# php-cs-fixer + \ +# -------------------- php-cs-fixer -------------------- && curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \ && chmod +x /usr/local/bin/php-cs-fixer \ \ -# phpunit + \ +# -------------------- phpunit -------------------- && curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \ && chmod +x /usr/local/bin/phpunit \ \ -# symfony + \ +# -------------------- symfony -------------------- && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \ + libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \ && curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \ && dpkg -i /tmp/wkhtmltopdf.deb \ && rm -f /tmp/wkhtmltopdf.deb \ @@ -295,10 +317,12 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# wpcli + \ +# -------------------- wpcli -------------------- && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -318,6 +342,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -339,21 +364,26 @@ RUN set -eux \ ### Install Composer (PHP) ### RUN set -eux \ -# asgardcms +# -------------------- asgardcms -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \ -# codeception + \ +# -------------------- codeception -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \ -# lumen + \ +# -------------------- lumen -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \ && ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \ -# photon + \ +# -------------------- photon -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require photoncms/installer \ && ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \ -# prestissimo + \ +# -------------------- prestissimo -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require hirak/prestissimo \ \ + \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ @@ -366,31 +396,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -407,17 +449,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl + \ +# -------------------- mdl -------------------- && gem install mdl \ -# scss_lint + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -431,13 +478,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -487,15 +537,10 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \ && drush8 --version | grep -E '8[.0-9]+\s*$' \ @@ -513,16 +558,19 @@ RUN set -eux \ && symfony --version | grep -E 'version\s*[.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ && wp --allow-root --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Composer -------------------- && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \ && photon --version | grep -E 'Installer [.0-9]+' \ - \ + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -532,10 +580,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/Dockerfiles/work/Dockerfile-7.4 b/Dockerfiles/work/Dockerfile-7.4 index e5e90cf..f43179e 100644 --- a/Dockerfiles/work/Dockerfile-7.4 +++ b/Dockerfiles/work/Dockerfile-7.4 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ @@ -49,6 +50,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -124,9 +126,10 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# composer +# -------------------- composer -------------------- && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ -# pip + \ +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -135,7 +138,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -152,7 +156,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -161,10 +166,12 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# deployer + \ +# -------------------- deployer -------------------- && curl -sS https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \ -# drush7 + \ +# -------------------- drush7 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \ && cd /usr/local/src/drush7 \ && git checkout 7.4.0 \ @@ -177,7 +184,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush7/examples \ && rm -rf /usr/local/src/drush7/misc \ \ -# drush8 + \ +# -------------------- drush8 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \ && cd /usr/local/src/drush8 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -190,7 +198,8 @@ RUN set -eux \ && rm -rf /usr/local/src/drush8/examples \ && rm -rf /usr/local/src/drush8/misc \ \ -# drush9 + \ +# -------------------- drush9 -------------------- && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \ && cd /usr/local/src/drush9 \ && git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \ @@ -203,16 +212,19 @@ RUN set -eux \ && rm -rf /usr/local/src/drush9/examples \ && rm -rf /usr/local/src/drush9/misc \ \ -# drupalconsole + \ +# -------------------- drupalconsole -------------------- && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# laravel + \ +# -------------------- laravel -------------------- && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -222,11 +234,13 @@ RUN set -eux \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -237,12 +251,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -264,22 +280,27 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# phpunit + \ +# -------------------- phpunit -------------------- && curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \ && chmod +x /usr/local/bin/phpunit \ \ -# symfony + \ +# -------------------- symfony -------------------- && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ @@ -291,10 +312,12 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# wpcli + \ +# -------------------- wpcli -------------------- && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -314,6 +337,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -335,21 +359,26 @@ RUN set -eux \ ### Install Composer (PHP) ### RUN set -eux \ -# asgardcms +# -------------------- asgardcms -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \ && ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \ -# codeception + \ +# -------------------- codeception -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \ && ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \ -# lumen + \ +# -------------------- lumen -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \ && ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \ -# photon + \ +# -------------------- photon -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require photoncms/installer \ && ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \ -# prestissimo + \ +# -------------------- prestissimo -------------------- && COMPOSER_HOME="/usr/local/src/composer" composer global require hirak/prestissimo \ \ + \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ @@ -362,31 +391,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -403,17 +444,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl - && gem install mdl \ -# scss_lint + \ +# -------------------- mdl -------------------- + && gem install mdl -v 0.5.0 \ + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -427,13 +473,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -483,15 +532,10 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \ && drush7 --version | grep -E '7[.0-9]+\s*$' \ && drush8 --version | grep -E '8[.0-9]+\s*$' \ @@ -508,16 +552,19 @@ RUN set -eux \ && symfony --version | grep -E 'version\s*[.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ && wp --allow-root --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Composer -------------------- && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \ && photon --version | grep -E 'Installer [.0-9]+' \ - \ + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -527,10 +574,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/Dockerfiles/work/Dockerfile-8.0 b/Dockerfiles/work/Dockerfile-8.0 index 92af085..9ab5c24 100644 --- a/Dockerfiles/work/Dockerfile-8.0 +++ b/Dockerfiles/work/Dockerfile-8.0 @@ -38,6 +38,7 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ + \ && echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \ && curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \ @@ -49,6 +50,7 @@ RUN set -eux \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \ && echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ + \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -124,9 +126,10 @@ RUN set -eux \ ### Install custom software ### RUN set -eux \ -# composer +# -------------------- composer -------------------- && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ -# pip + \ +# -------------------- pip -------------------- && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libpython-dev \ @@ -135,7 +138,8 @@ RUN set -eux \ \ && curl -sS https://bootstrap.pypa.io/get-pip.py | python \ \ -# nvm + \ +# -------------------- nvm -------------------- && git clone https://github.com/creationix/nvm /opt/nvm \ && cd /opt/nvm \ && git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \ @@ -152,7 +156,8 @@ RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ \ -# awesomeci + \ +# -------------------- awesomeci -------------------- && git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ && cd /usr/local/src/awesome-ci \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -161,20 +166,24 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/awesome-ci \ \ -# deployer + \ +# -------------------- deployer -------------------- && curl -sS https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \ && chmod +x /usr/local/bin/dep \ -# gitflow + \ +# -------------------- gitflow -------------------- && git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \ && cd /tmp/gitflow \ && make install \ && cd / && rm -rf /tmp/gitflow \ \ -# linkcheck + \ +# -------------------- linkcheck -------------------- && curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \ && chmod +x /usr/local/bin/linkcheck \ \ -# linuxbrew + \ +# -------------------- linuxbrew -------------------- && git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \ && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \ && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ @@ -185,12 +194,14 @@ RUN set -eux \ 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ \ -# mhsendmail + \ +# -------------------- mhsendmail -------------------- && wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \ && chmod +x mhsendmail_linux_amd64 \ && mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \ \ -# mysqldumpsecure + \ +# -------------------- mysqldumpsecure -------------------- && git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \ && cd /usr/local/src/mysqldump-secure \ && git checkout $(git describe --abbrev=0 --tags) \ @@ -212,18 +223,22 @@ RUN set -eux \ && cd / \ && rm -rf /usr/local/src/mysqldump-secure \ \ -# phpcs + \ +# -------------------- phpcs -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \ && chmod +x /usr/local/bin/phpcs \ \ -# phpcbf + \ +# -------------------- phpcbf -------------------- && curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \ && chmod +x /usr/local/bin/phpcbf \ \ -# symfony + \ +# -------------------- symfony -------------------- && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ && chmod +x /usr/local/bin/symfony \ -# wkhtmltopdf + \ +# -------------------- wkhtmltopdf -------------------- && VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ @@ -235,10 +250,12 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ && rm -rf /var/lib/apt/lists/* \ \ -# wpcli + \ +# -------------------- wpcli -------------------- && curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \ && chmod +x /usr/local/bin/wp \ -# cleanup + \ +# -------------------- cleanup -------------------- && rm -rf /home/${MY_USER}/.*json \ && rm -rf /home/${MY_USER}/.cache \ && rm -rf /home/${MY_USER}/.composer \ @@ -258,6 +275,7 @@ RUN set -eux \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ + \ \ && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ @@ -292,31 +310,43 @@ RUN set -eux \ ### Install npm (Node) ### RUN set -eux \ -# angular_cli +# -------------------- angular_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \ -# eslint + \ +# -------------------- eslint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \ -# grunt + \ +# -------------------- grunt -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \ -# grunt_cli + \ +# -------------------- grunt_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \ -# gulp + \ +# -------------------- gulp -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \ -# jsonlint + \ +# -------------------- jsonlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \ -# pm2 + \ +# -------------------- pm2 -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \ -# mdlint + \ +# -------------------- mdlint -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \ -# vue_cli + \ +# -------------------- vue_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \ -# vue_cli_service_global + \ +# -------------------- vue_cli_service_global -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \ -# webpack + \ +# -------------------- webpack -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \ -# webpack_cli + \ +# -------------------- webpack_cli -------------------- && su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \ \ + \ && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -333,17 +363,22 @@ RUN set -eux \ ### Install gem (Ruby) ### RUN set -eux \ -# mixlib_config +# -------------------- mixlib_config -------------------- && gem install mixlib-config -v 2.2.4 \ -# rb_inotify + \ +# -------------------- rb_inotify -------------------- && gem install rb-inotify -v 0.9.10 \ -# mdl - && gem install mdl \ -# scss_lint + \ +# -------------------- mdl -------------------- + && gem install mdl -v 0.5.0 \ + \ +# -------------------- scss_lint -------------------- && gem install scss_lint -v 0.57.1 \ -# sass + \ +# -------------------- sass -------------------- && gem install sass \ \ + \ && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -357,13 +392,16 @@ RUN set -eux \ ### Install pip (Python) packages ### RUN set -eux \ -# ansible +# -------------------- ansible -------------------- && pip install --no-cache-dir --force-reinstall ansible \ -# yamllint + \ +# -------------------- yamllint -------------------- && pip install --no-cache-dir --force-reinstall yamllint \ -# yq + \ +# -------------------- yq -------------------- && pip install --no-cache-dir --force-reinstall yq \ \ + \ && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -413,15 +451,10 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ +# -------------------- Software -------------------- && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ && su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \ - && mdl --version | grep -E '[.0-9]+' \ -&& scss-lint --version | grep -E '[.0-9]+' \ -&& eslint -v | grep -E '[.0-9]+' \ -&& jsonlint --version | grep -E '[.0-9]+' \ -&& mdlint --version | grep -E '[.0-9]+' \ -&& gulp --version | grep -E '[.0-9]+' \ - \ + && regex-grep --version | grep -E '[.0-9]+' \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \ && git-flow version | grep -E '[.0-9]+' \ && linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \ @@ -432,12 +465,15 @@ RUN set -eux \ && symfony --version | grep -E 'version\s*[.0-9]+' \ && wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \ && wp --allow-root --version | grep -E '[.0-9]+' \ - \ - \ + \ +# -------------------- Composer -------------------- + \ +# -------------------- PIP -------------------- && ansible --version | grep -E '^ansible [.0-9]+$' \ && yamllint --version 2>&1 | grep -E '[.0-9]+' \ && yq --version 2>&1 | grep -E '^yq\s+[.0-9]+$' \ - \ + \ +# -------------------- NPM -------------------- && ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \ && eslint -v | grep -E '[.0-9]+' \ && grunt --version | grep -E '[.0-9]+' \ @@ -447,10 +483,12 @@ RUN set -eux \ && mdlint --version | grep -E '[.0-9]+' \ && vue --version | grep -E '[.0-9]+' \ && webpack --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- GEM -------------------- && mdl --version | grep -E '[.0-9]+' \ && sass --version | grep -E '[.0-9]+' \ - \ + \ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/build/ansible/DOCKERFILES/Dockerfile-work.j2 index 3c76423..edfb174 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-work.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-work.j2 @@ -38,38 +38,33 @@ RUN set -eux \ curl \ dirmngr \ gnupg \ -{% for repo in apt_repositories_enabled -%} + \ +{%- for repo in apt_repositories_enabled -%} {#- Not disabled -#} {%- if ('disabled' not in apt_repositories_available[repo]) or (php_version not in apt_repositories_available[repo]['disabled']) -%} {#- Version specific pre-command available? -#} - {%- if php_version in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo][php_version] %} - && {{ apt_repositories_available[repo][php_version]['pre'] }} \ -{# #} + {%- if php_version in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo][php_version] -%} + {{ "\n\t" }}&& {{ apt_repositories_available[repo][php_version]['pre'] }} \ {#- Generic pre-command available? -#} - {%- elif 'all' in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo]['all'] %} - && {{ apt_repositories_available[repo]['all']['pre'] }} \ -{# #} + {%- elif 'all' in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo]['all'] -%} + {{ "\n\t" }}&& {{ apt_repositories_available[repo]['all']['pre'] }} \ {%- endif -%} {#- Version specific key available? -#} - {%- if php_version in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo][php_version] %} - && APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo][php_version]['key'] }} \ -{# #} + {%- if php_version in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo][php_version] -%} + {{ "\n\t" }}&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo][php_version]['key'] }} \ {#- Generic key available? -#} - {%- elif 'all' in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo]['all'] %} - && APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo]['all']['key'] }} \ -{# #} + {%- elif 'all' in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo]['all'] -%} + {{ "\n\t" }}&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo]['all']['key'] }} \ {%- endif -%} {#- Version specific repository available? -#} - {%- if php_version in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo][php_version] %} - && echo "{{ apt_repositories_available[repo][php_version]['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \ -{# #} + {%- if php_version in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo][php_version] -%} + {{ "\n\t" }}&& echo "{{ apt_repositories_available[repo][php_version]['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \ {#- Generic repository available? -#} - {%- else %} - && echo "{{ apt_repositories_available[repo]['all']['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \ -{# #} + {%- elif 'all' in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo]['all'] -%} + {{ "\n\t" }}&& echo "{{ apt_repositories_available[repo]['all']['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \ {%- endif -%} {%- endif -%} -{%- endfor %} +{%- endfor -%}{{ "\n\t" }}\ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ ack-grep \ @@ -105,7 +100,11 @@ RUN set -eux \ mongodb-org-shell \ mongodb-org-tools \ moreutils \ +{% if php_version in [7.1, 7.2, 7.3] %} + mariadb-client \ +{% else %} mysql-client \ +{% endif %} nano \ net-tools \ netcat \ @@ -144,35 +143,55 @@ RUN set -eux \ ### ### Install custom software ### +{% if not build_fail_fast %} RUN set -eux \ -{% for tool in software_enabled %} -{# Not disabled #} -{% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %} -# {{ tool }} -{# Version specific pre-command available? #} -{% if php_version in software_available[tool] and 'pre' in software_available[tool][php_version] %} - && {{ software_available[tool][php_version]['pre'] }} \ -{# Generic pre-command available? #} -{% elif 'all' in software_available[tool] and 'pre' in software_available[tool]['all'] %} - && {{ software_available[tool]['all']['pre'] }} \ -{% endif %} -{# Version specific command available? #} -{% if php_version in software_available[tool] and 'command' in software_available[tool][php_version] %} - && {{ software_available[tool][php_version]['command'] }} \ -{# Generic command available? #} -{% else %} - && {{ software_available[tool]['all']['command'] }} \ -{% endif %} -{# Version specific post-command available? #} -{% if php_version in software_available[tool] and 'post' in software_available[tool][php_version] %} - && {{ software_available[tool][php_version]['post'] }} \ -{# Generic post-command available? #} -{% elif 'all' in software_available[tool] and 'post' in software_available[tool]['all'] %} - && {{ software_available[tool]['all']['post'] }} \ -{% endif %} -{% endif %} -{% endfor %} - \ +{%- endif -%} +{%- for tool in software_enabled -%} + {# Not disabled #} + {%- if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) -%} + {{ "\n" }}# -------------------- {{ tool }} -------------------- + {%- if build_fail_fast -%} + {{ "\n" }}RUN set -eux \ + {%- endif -%} + {#- Version specific pre-command available? -#} + {%- if php_version in software_available[tool] and 'pre' in software_available[tool][php_version] -%} + {{ "\n\t" }}&& {{ software_available[tool][php_version]['pre'] }} \ + {#- Generic pre-command available? -#} + {%- elif 'all' in software_available[tool] and 'pre' in software_available[tool]['all'] -%} + {{ "\n\t" }}&& {{ software_available[tool]['all']['pre'] }} \ + {%- endif -%} + {#- Version specific command available? -#} + {%- if php_version in software_available[tool] and 'command' in software_available[tool][php_version] -%} + {{ "\n\t" }}&& {{ software_available[tool][php_version]['command'] }} \ + {#- Generic command available? -#} + {%- else -%} + {{ "\n\t" }}&& {{ software_available[tool]['all']['command'] }} \ + {%- endif -%} + {#- Version specific post-command available? -#} + {%- if php_version in software_available[tool] and 'post' in software_available[tool][php_version] -%} + {{ "\n\t" }}&& {{ software_available[tool][php_version]['post'] }} \ + {#- Generic post-command available? -#} + {%- elif 'all' in software_available[tool] and 'post' in software_available[tool]['all'] -%} + {{ "\n\t" }}&& {{ software_available[tool]['all']['post'] }} \ + {%- endif -%} + {#- Fail fast version -#} + {%- if build_fail_fast -%} + {%- if 'check' in software_available[tool] -%} + {{ "\n\t" }}&& {{ software_available[tool]['check'] }}{{ "\n\n" }} + {%- else -%} + {{ "\n\t" }}&& true{{ "\n\n" }} + {%- endif -%} + {%- else -%} + {{ "\n\t" }}\ + {%- endif -%} + {#- end of Fail fast version -#} + {%- endif -%} +{%- endfor -%} +{% if build_fail_fast -%} + RUN set -eux \{{ "\n" }} +{%- else -%} + {{ "\n\t" }}\{{ "\n" }} +{%- endif %} && (rm -rf /root/.gem || true ) \ && (rm -rf /root/.cache || true) \ && (rm -rf /root/.composer || true) \ @@ -192,27 +211,48 @@ RUN set -eux \ ### ### Install Composer (PHP) ### +{% if not build_fail_fast %} RUN set -eux \ -{% for tool in composer_enabled %} -{# Not disabled #} -{% if ('disabled' not in composer_available[tool]) or (php_version not in composer_available[tool]['disabled']) %} -# {{ tool }} -{# Version specific gem version available? #} -{% if php_version in composer_available[tool] and 'version' in composer_available[tool][php_version] %} - && COMPOSER_HOME="{{ composer_home }}" composer global require {{ composer_available[tool]['name'] }}:{{ composer_available[tool][php_version]['version'] }} \ -{# Generic gem version available? #} -{% elif 'all' in composer_available[tool] and 'version' in composer_available[tool]['all'] %} - && COMPOSER_HOME="{{ composer_home }}" composer global require {{ composer_available[tool]['name'] }}:{{ composer_available[tool]['all']['version'] }} \ -{# No version info available #} -{% else %} - && COMPOSER_HOME="{{ composer_home }}" composer global require {{ composer_available[tool]['name'] }} \ -{% endif %} -{% if 'link' in composer_available[tool] %} - && ln -s {{ composer_home }}/vendor/{{ composer_available[tool]['name'] }}/{{ composer_available[tool]['link'] }} /usr/local/bin/ \ -{% endif %} -{% endif %} +{%- endif -%} +{%- for tool in composer_enabled -%} + {#- Not disabled -#} + {%- if ('disabled' not in composer_available[tool]) or (php_version not in composer_available[tool]['disabled']) -%} + {{ "\n" }}# -------------------- {{ tool }} -------------------- + {%- if build_fail_fast -%} + {{ "\n" }}RUN set -eux \ + {%- endif -%} + {#- Version specific gem version available? -#} + {%- if php_version in composer_available[tool] and 'version' in composer_available[tool][php_version] -%} + {{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" composer global require {{ composer_available[tool]['name'] }}:{{ composer_available[tool][php_version]['version'] }} \ + {#- Generic gem version available? -#} + {%- elif 'all' in composer_available[tool] and 'version' in composer_available[tool]['all'] -%} + {{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" composer global require {{ composer_available[tool]['name'] }}:{{ composer_available[tool]['all']['version'] }} \ + {#- No version info available -#} + {%- else -%} + {{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" composer global require {{ composer_available[tool]['name'] }} \ + {%- endif -%} + {#- Symlinks available? -#} + {%- if 'link' in composer_available[tool] -%} + {{ "\n\t" }}&& ln -s {{ composer_home }}/vendor/{{ composer_available[tool]['name'] }}/{{ composer_available[tool]['link'] }} /usr/local/bin/ \ + {%- endif -%} + {#- Fail fast version -#} + {%- if build_fail_fast -%} + {%- if 'check' in composer_available[tool] -%} + {{ "\n\t" }}&& {{ composer_available[tool]['check'] }}{{ "\n\n" }} + {%- else -%} + {{ "\n\t" }}&& true{{ "\n\n" }} + {%- endif -%} + {%- else -%} + {{ "\n\t" }}\ + {%- endif -%} + {#- end of Fail fast version -#} + {%- endif -%} {% endfor %} - \ +{% if build_fail_fast -%} + RUN set -eux \{{ "\n" }} +{%- else -%} + {{ "\n\t" }}\{{ "\n" }} +{%- endif %} && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ \ @@ -224,24 +264,44 @@ RUN set -eux \ ### ### Install npm (Node) ### +{% if not build_fail_fast %} RUN set -eux \ -{% for tool in npm_enabled %} -{# Not disabled #} -{% if ('disabled' not in npm_available[tool]) or (php_version not in npm_available[tool]['disabled']) %} -# {{ tool }} -{# Version specific gem version available? #} -{% if php_version in npm_available[tool] and 'version' in npm_available[tool][php_version] %} - && su -c '. /opt/nvm/nvm.sh; npm install -g {{ npm_available[tool]['name'] }} {{ npm_available[tool][php_version]['version'] }}' devilbox \ -{# Generic gem version available? #} -{% elif 'all' in npm_available[tool] and 'version' in npm_available[tool]['all'] %} - && su -c '. /opt/nvm/nvm.sh; npm install -g {{ npm_available[tool]['name'] }} {{ npm_available[tool]['all']['version'] }}' devilbox \ -{# No version info available #} -{% else %} - && su -c '. /opt/nvm/nvm.sh; npm install -g {{ npm_available[tool]['name'] }}' devilbox \ -{% endif %} -{% endif %} -{% endfor %} - \ +{%- endif -%} +{%- for tool in npm_enabled -%} + {#- Not disabled -#} + {%- if ('disabled' not in npm_available[tool]) or (php_version not in npm_available[tool]['disabled']) -%} + {{ "\n" }}# -------------------- {{ tool }} -------------------- + {%- if build_fail_fast -%} + {{ "\n" }}RUN set -eux \ + {%- endif -%} + {#- Version specific gem version available? -#} + {%- if php_version in npm_available[tool] and 'version' in npm_available[tool][php_version] -%} + {{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g {{ npm_available[tool]['name'] }} {{ npm_available[tool][php_version]['version'] }}' devilbox \ + {#- Generic gem version available? -#} + {%- elif 'all' in npm_available[tool] and 'version' in npm_available[tool]['all'] -%} + {{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g {{ npm_available[tool]['name'] }} {{ npm_available[tool]['all']['version'] }}' devilbox \ + {#- No version info available -#} + {%- else -%} + {{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g {{ npm_available[tool]['name'] }}' devilbox \ + {%- endif -%} + {#- Fail fast version -#} + {%- if build_fail_fast -%} + {%- if 'check' in npm_available[tool] -%} + {{ "\n\t" }}&& PATH=$PATH:/opt/nvm/versions/node/$(/bin/ls -1 /opt/nvm/versions/node/ | sort -V | tail -1)/bin /opt/nvm/versions/node/$(/bin/ls -1 /opt/nvm/versions/node/ | sort -V | tail -1)/bin/{{ npm_available[tool]['check'] }}{{ "\n\n" }} + {%- else -%} + {{ "\n\t" }}&& true{{ "\n\n" }} + {%- endif -%} + {%- else -%} + {{ "\n\t" }}\ + {%- endif -%} + {#- end of Fail fast version -#} + {%- endif -%} +{%- endfor -%} +{% if build_fail_fast -%} + RUN set -eux \{{ "\n" }} +{%- else -%} + {{ "\n\t" }}\{{ "\n" }} +{%- endif %} && ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \ \ && su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \ @@ -257,24 +317,44 @@ RUN set -eux \ ### ### Install gem (Ruby) ### +{% if not build_fail_fast %} RUN set -eux \ -{% for tool in gem_enabled %} -{# Not disabled #} -{% if ('disabled' not in gem_available[tool]) or (php_version not in gem_available[tool]['disabled']) %} -# {{ tool }} -{# Version specific gem version available? #} -{% if php_version in gem_available[tool] and 'version' in gem_available[tool][php_version] %} - && gem install {{ gem_available[tool]['name'] }} -v {{ gem_available[tool][php_version]['version'] }} \ -{# Generic gem version available? #} -{% elif 'all' in gem_available[tool] and 'version' in gem_available[tool]['all'] %} - && gem install {{ gem_available[tool]['name'] }} -v {{ gem_available[tool]['all']['version'] }} \ -{# No version info available #} -{% else %} - && gem install {{ gem_available[tool]['name'] }} \ -{% endif %} -{% endif %} -{% endfor %} - \ +{%- endif -%} +{%- for tool in gem_enabled -%} + {#- Not disabled -#} + {%- if ('disabled' not in gem_available[tool]) or (php_version not in gem_available[tool]['disabled']) -%} + {{ "\n" }}# -------------------- {{ tool }} -------------------- + {%- if build_fail_fast -%} + {{ "\n" }}RUN set -eux \ + {%- endif -%} + {#- Version specific gem version available? -#} + {%- if php_version in gem_available[tool] and 'version' in gem_available[tool][php_version] -%} + {{ "\n\t" }}&& gem install {{ gem_available[tool]['name'] }} -v {{ gem_available[tool][php_version]['version'] }} \ + {#- Generic gem version available? -#} + {%- elif 'all' in gem_available[tool] and 'version' in gem_available[tool]['all'] -%} + {{ "\n\t" }}&& gem install {{ gem_available[tool]['name'] }} -v {{ gem_available[tool]['all']['version'] }} \ + {#- No version info available -#} + {%- else -%} + {{ "\n\t" }}&& gem install {{ gem_available[tool]['name'] }} \ + {%- endif -%} + {#- Fail fast version -#} + {%- if build_fail_fast -%} + {%- if 'check' in gem_available[tool] -%} + {{ "\n\t" }}&& {{ gem_available[tool]['check'] }}{{ "\n\n" }} + {%- else -%} + {{ "\n\t" }}&& true{{ "\n\n" }} + {%- endif -%} + {%- else -%} + {{ "\n\t" }}\ + {%- endif -%} + {#- end of Fail fast version -#} + {%- endif -%} +{%- endfor -%} +{% if build_fail_fast -%} + RUN set -eux \{{ "\n" }} +{%- else -%} + {{ "\n\t" }}\{{ "\n" }} +{%- endif %} && rm -rf /root/.gem \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -287,24 +367,44 @@ RUN set -eux \ ### ### Install pip (Python) packages ### +{% if not build_fail_fast %} RUN set -eux \ -{% for tool in pip_enabled %} -{# Not disabled #} -{% if ('disabled' not in pip_available[tool]) or (php_version not in pip_available[tool]['disabled']) %} -# {{ tool }} -{# Version specific gem version available? #} -{% if php_version in pip_available[tool] and 'version' in pip_available[tool][php_version] %} - && pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }}=={{ pip_available[tool][php_version]['version'] }} \ -{# Generic gem version available? #} -{% elif 'all' in pip_available[tool] and 'version' in pip_available[tool]['all'] %} - && pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }}=={{ pip_available[tool]['all']['version'] }} \ -{# No version info available #} -{% else %} - && pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }} \ -{% endif %} -{% endif %} -{% endfor %} - \ +{%- endif -%} +{%- for tool in pip_enabled -%} + {#- Not disabled -#} + {%- if ('disabled' not in pip_available[tool]) or (php_version not in pip_available[tool]['disabled']) -%} + {{ "\n" }}# -------------------- {{ tool }} -------------------- + {%- if build_fail_fast -%} + {{ "\n" }}RUN set -eux \ + {%- endif -%} + {#- Version specific gem version available? -#} + {%- if php_version in pip_available[tool] and 'version' in pip_available[tool][php_version] -%} + {{ "\n\t" }}&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }}=={{ pip_available[tool][php_version]['version'] }} \ + {#- Generic gem version available? -#} + {%- elif 'all' in pip_available[tool] and 'version' in pip_available[tool]['all'] -%} + {{ "\n\t" }}&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }}=={{ pip_available[tool]['all']['version'] }} \ + {#- No version info available -#} + {%- else -%} + {{ "\n\t" }}&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }} \ + {%- endif -%} + {#- Fail fast version -#} + {%- if build_fail_fast -%} + {%- if 'check' in pip_available[tool] -%} + {{ "\n\t" }}&& {{ pip_available[tool]['check'] }}{{ "\n\n" }} + {%- else -%} + {{ "\n\t" }}&& true{{ "\n\n" }} + {%- endif -%} + {%- else -%} + {{ "\n\t" }}\ + {%- endif -%} + {#- end of Fail fast version -#} + {%- endif -%} +{%- endfor -%} +{% if build_fail_fast -%} + RUN set -eux \{{ "\n" }} +{%- else -%} + {{ "\n\t" }}\{{ "\n" }} +{%- endif %} && rm -rf /root/.cache/pip \ && rm -rf /tmp/* \ && (rm -rf /tmp/.* || true) \ @@ -355,51 +455,52 @@ RUN set -eux \ && rm -f /usr/local/etc/php/php.ini RUN set -eux \ -{# ---- SOFTWARE ---- #} -{% for tool in software_enabled %} -{# Not disabled #} -{% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %} -{% if 'check' in software_available[tool] %} - && {{ software_available[tool]['check'] }} \ -{% endif %} -{% endif %} -{% endfor %} \ -{# ---- Composer ---- #} -{% for tool in composer_enabled %} -{# Not disabled #} -{% if ('disabled' not in composer_available[tool]) or (php_version not in composer_available[tool]['disabled']) %} -{% if 'check' in composer_available[tool] %} - && {{ composer_available[tool]['check'] }} \ -{% endif %} -{% endif %} -{% endfor %} \ -{# ---- PIP ---- #} -{% for tool in pip_enabled %} -{# Not disabled #} -{% if ('disabled' not in pip_available[tool]) or (php_version not in pip_available[tool]['disabled']) %} -{% if 'check' in pip_available[tool] %} - && {{ pip_available[tool]['check'] }} \ -{% endif %} -{% endif %} -{% endfor %} \ -{# ---- NPM ---- #} -{% for tool in npm_enabled %} -{# Not disabled #} -{% if ('disabled' not in npm_available[tool]) or (php_version not in npm_available[tool]['disabled']) %} -{% if 'check' in npm_available[tool] %} - && {{ npm_available[tool]['check'] }} \ -{% endif %} -{% endif %} -{% endfor %} \ -{# ---- GEM ---- #} -{% for tool in gem_enabled %} -{# Not disabled #} -{% if ('disabled' not in gem_available[tool]) or (php_version not in gem_available[tool]['disabled']) %} -{% if 'check' in gem_available[tool] %} - && {{ gem_available[tool]['check'] }} \ -{% endif %} -{% endif %} -{% endfor %} \ +# -------------------- Software -------------------- +{%- for tool in software_enabled -%} + {#- Not disabled -#} + {%- if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) -%} + {%- if 'check' in software_available[tool] -%} + {{ "\n\t" }}&& {{ software_available[tool]['check'] }} \ + {%- endif -%} + {%- endif -%} +{%- endfor -%}{{ "\n\t" }}\ +# -------------------- Composer -------------------- +{%- for tool in composer_enabled -%} + {#- Not disabled -#} + {%- if ('disabled' not in composer_available[tool]) or (php_version not in composer_available[tool]['disabled']) -%} + {%- if 'check' in composer_available[tool] -%} + {{ "\n\t" }}&& {{ composer_available[tool]['check'] }} \ + {%- endif -%} + {%- endif -%} +{%- endfor -%}{{ "\n\t" }}\ +# -------------------- PIP -------------------- +{%- for tool in pip_enabled -%} + {#- Not disabled -#} + {%- if ('disabled' not in pip_available[tool]) or (php_version not in pip_available[tool]['disabled']) -%} + {%- if 'check' in pip_available[tool] -%} + {{ "\n\t" }}&& {{ pip_available[tool]['check'] }} \ + {%- endif -%} + {%- endif -%} +{%- endfor -%}{{ "\n\t" }}\ +# -------------------- NPM -------------------- +{%- for tool in npm_enabled -%} + {#- Not disabled -#} + {%- if ('disabled' not in npm_available[tool]) or (php_version not in npm_available[tool]['disabled']) -%} + {%- if 'check' in npm_available[tool] -%} + {{ "\n\t" }}&& {{ npm_available[tool]['check'] }} \ + {%- endif -%} + {%- endif -%} +{%- endfor -%}{{ "\n\t" }}\ +# -------------------- GEM -------------------- +{%- for tool in gem_enabled -%} + {#- Not disabled -#} + {%- if ('disabled' not in gem_available[tool]) or (php_version not in gem_available[tool]['disabled']) -%} + {%- if 'check' in gem_available[tool] -%} + {{ "\n\t" }}&& {{ gem_available[tool]['check'] }} \ + {%- endif -%} + {%- endif -%} +{% endfor %}{{ "\n\t" }}\ +# -------------------- Cleanup -------------------- && rm -rf /home/devilbox/.config/ \ && rm -rf /root/.ansible \ && rm -rf /root/.console \ diff --git a/build/ansible/group_vars/all/all-ansible.yml b/build/ansible/group_vars/all/all-ansible.yml index 4f5225f..e1cd6c6 100644 --- a/build/ansible/group_vars/all/all-ansible.yml +++ b/build/ansible/group_vars/all/all-ansible.yml @@ -15,7 +15,7 @@ edit_comment_work: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES debug: True # Also implement checks in builder images (slow, but fails faster) -build_fail_fast: True +build_fail_fast: False # ------------------------------------------------------------------------------------------------- diff --git a/build/ansible/group_vars/all/work.yml b/build/ansible/group_vars/all/work.yml index 619e2b5..6615be4 100644 --- a/build/ansible/group_vars/all/work.yml +++ b/build/ansible/group_vars/all/work.yml @@ -254,6 +254,22 @@ gem_available: mdl: name: mdl check: mdl --version | grep -E '[.0-9]+' + 8.0: + version: 0.5.0 + 7.4: + version: 0.5.0 + 7.0: + version: 0.5.0 + 5.6: + version: 0.5.0 + 5.5: + version: 0.5.0 + 5.4: + version: 0.5.0 + 5.3: + version: 0.5.0 + 5.2: + version: 0.5.0 scss_lint: name: scss_lint all: @@ -391,13 +407,7 @@ software_available: && su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \ && su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \ awesomeci: - check: | - mdl --version | grep -E '[.0-9]+' \ - && scss-lint --version | grep -E '[.0-9]+' \ - && eslint -v | grep -E '[.0-9]+' \ - && jsonlint --version | grep -E '[.0-9]+' \ - && mdlint --version | grep -E '[.0-9]+' \ - && gulp --version | grep -E '[.0-9]+' \ + check: regex-grep --version | grep -E '[.0-9]+' all: command: | git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \ @@ -680,6 +690,30 @@ software_available: pre: VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" 5.5: pre: VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" + 7.1: + command: | + DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \ + && curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \ + && dpkg -i /tmp/wkhtmltopdf.deb \ + && rm -f /tmp/wkhtmltopdf.deb \ + 7.2: + command: | + DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \ + && curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \ + && dpkg -i /tmp/wkhtmltopdf.deb \ + && rm -f /tmp/wkhtmltopdf.deb \ + 7.3: + command: | + DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \ + && curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \ + && dpkg -i /tmp/wkhtmltopdf.deb \ + && rm -f /tmp/wkhtmltopdf.deb \ all: pre: VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" command: |