Fix work images

This commit is contained in:
cytopia
2019-11-03 21:46:15 +01:00
parent 67017e494e
commit a6236b19c7
14 changed files with 1456 additions and 808 deletions

View File

@@ -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 \

View File

@@ -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 \

View File

@@ -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 \

View File

@@ -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 \

View File

@@ -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 \

View File

@@ -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 \

View File

@@ -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 \

View File

@@ -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 \

View File

@@ -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 \

View File

@@ -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 \

View File

@@ -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 \