mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-17 14:31:14 +00:00
Fix work images
This commit is contained in:
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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 \
|
||||
|
||||
Reference in New Issue
Block a user