mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-10 11:01:14 +00:00
Backport more tools for work flavour
This commit is contained in:
@@ -29,6 +29,7 @@ RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
python3-distutils \
|
||||
unzip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
###
|
||||
### Devilbox required helper tools from group_vars (work-help.yml)
|
||||
@@ -156,7 +157,9 @@ RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
python3-distutils \
|
||||
unzip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### Copy nvm
|
||||
###
|
||||
@@ -263,9 +266,14 @@ RUN set -eux \
|
||||
# ---------- build_deps ----------
|
||||
ruby-dev \
|
||||
# ---------- run_deps ----------
|
||||
dos2unix \
|
||||
file \
|
||||
moreutils \
|
||||
ruby \
|
||||
# ---------- type: apt ----------
|
||||
git \
|
||||
jq \
|
||||
shellcheck \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
@@ -287,6 +295,44 @@ RUN set -eux \
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) eslint --------------------
|
||||
RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
&& ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (apt) git --------------------
|
||||
RUN set -eux \
|
||||
&& git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) jsonlint --------------------
|
||||
RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
&& ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (rubygem) mdl --------------------
|
||||
RUN set -eux \
|
||||
&& gem install mdl \
|
||||
&& mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) awesome-ci --------------------
|
||||
RUN set -eux \
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \
|
||||
&& cd /tmp/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf /tmp/awesome-ci \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (composer) codeception --------------------
|
||||
RUN set -eux \
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \
|
||||
@@ -302,11 +348,14 @@ RUN set -eux \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) eslint --------------------
|
||||
# -------------------- (custom) git-flow --------------------
|
||||
RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
&& ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
&& git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) grunt-cli --------------------
|
||||
@@ -328,11 +377,19 @@ RUN set -eux \
|
||||
&& jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) jsonlint --------------------
|
||||
# -------------------- (composer) laravel-installer --------------------
|
||||
RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
&& ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/installer/bin/laravel /usr/local/bin/ \
|
||||
&& rm -rf /usr/local/src/composer/cache/* \
|
||||
&& laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) linkcheck --------------------
|
||||
RUN set -eux \
|
||||
&& curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
&& linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (composer) lumen --------------------
|
||||
@@ -343,10 +400,42 @@ RUN set -eux \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (rubygem) mdl --------------------
|
||||
# -------------------- (npm) mdlint --------------------
|
||||
RUN set -eux \
|
||||
&& gem install mdl \
|
||||
&& mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
&& ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) php-cs-fixer --------------------
|
||||
RUN set -eux \
|
||||
&& PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v3.phar" \
|
||||
&& curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) phpcbf --------------------
|
||||
RUN set -eux \
|
||||
&& PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \
|
||||
&& curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) phpcs --------------------
|
||||
RUN set -eux \
|
||||
&& PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \
|
||||
&& curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) phpmd --------------------
|
||||
RUN set -eux \
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) phpunit --------------------
|
||||
@@ -363,16 +452,61 @@ RUN set -eux \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) pm2 --------------------
|
||||
RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
&& ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (pip) pwncat --------------------
|
||||
RUN set -eux \
|
||||
&& pip install --no-cache-dir --no-compile --force-reinstall pwncat \
|
||||
&& ln -s pwncat /usr/local/bin/netcat \
|
||||
&& ln -s pwncat /usr/local/bin/nc \
|
||||
\
|
||||
&& pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) wpcli --------------------
|
||||
# -------------------- (npm) sass --------------------
|
||||
RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
&& ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (apt) shellcheck --------------------
|
||||
RUN set -eux \
|
||||
&& shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) stylelint --------------------
|
||||
RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
&& ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) symfony-cli --------------------
|
||||
RUN set -eux \
|
||||
&& curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \
|
||||
&& symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) vue-cli --------------------
|
||||
RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
&& ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) webpack-cli --------------------
|
||||
RUN set -eux \
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
&& ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \
|
||||
&& webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) wp-cli --------------------
|
||||
RUN set -eux \
|
||||
&& WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \
|
||||
&& curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \
|
||||
@@ -422,9 +556,14 @@ RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
# ---------- run_deps ----------
|
||||
dos2unix \
|
||||
file \
|
||||
moreutils \
|
||||
ruby \
|
||||
# ---------- type: apt ----------
|
||||
git \
|
||||
jq \
|
||||
shellcheck \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
@@ -481,6 +620,31 @@ RUN set -eux \
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) eslint --------------------
|
||||
RUN set -eux \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (apt) git --------------------
|
||||
RUN set -eux \
|
||||
&& git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) jsonlint --------------------
|
||||
RUN set -eux \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (rubygem) mdl --------------------
|
||||
RUN set -eux \
|
||||
&& mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) awesome-ci --------------------
|
||||
RUN set -eux \
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (composer) codeception --------------------
|
||||
RUN set -eux \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \
|
||||
@@ -491,9 +655,9 @@ RUN set -eux \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) eslint --------------------
|
||||
# -------------------- (custom) git-flow --------------------
|
||||
RUN set -eux \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \
|
||||
&& git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) grunt-cli --------------------
|
||||
@@ -511,9 +675,14 @@ RUN set -eux \
|
||||
&& jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) jsonlint --------------------
|
||||
# -------------------- (composer) laravel-installer --------------------
|
||||
RUN set -eux \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \
|
||||
&& laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) linkcheck --------------------
|
||||
RUN set -eux \
|
||||
&& linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (composer) lumen --------------------
|
||||
@@ -521,9 +690,29 @@ RUN set -eux \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (rubygem) mdl --------------------
|
||||
# -------------------- (npm) mdlint --------------------
|
||||
RUN set -eux \
|
||||
&& mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) php-cs-fixer --------------------
|
||||
RUN set -eux \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) phpcbf --------------------
|
||||
RUN set -eux \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) phpcs --------------------
|
||||
RUN set -eux \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) phpmd --------------------
|
||||
RUN set -eux \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) phpunit --------------------
|
||||
@@ -531,12 +720,47 @@ RUN set -eux \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) pm2 --------------------
|
||||
RUN set -eux \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (pip) pwncat --------------------
|
||||
RUN set -eux \
|
||||
&& pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) wpcli --------------------
|
||||
# -------------------- (npm) sass --------------------
|
||||
RUN set -eux \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (apt) shellcheck --------------------
|
||||
RUN set -eux \
|
||||
&& shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) stylelint --------------------
|
||||
RUN set -eux \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) symfony-cli --------------------
|
||||
RUN set -eux \
|
||||
&& symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) vue-cli --------------------
|
||||
RUN set -eux \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (npm) webpack-cli --------------------
|
||||
RUN set -eux \
|
||||
&& webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \
|
||||
&& true
|
||||
|
||||
# -------------------- (custom) wp-cli --------------------
|
||||
RUN set -eux \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \
|
||||
&& true
|
||||
|
||||
Reference in New Issue
Block a user