diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index 5007fb6..d3d1623 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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) \ +&& ./configure --prefix=/usr/local \ +&& make install \ +&& cd / \ +&& rm -rf /usr/local/src/awesome-ci \ + \ + && gem install mixlib-config -v 2.2.4 \ +&& gem install mdl \ +&& gem install scss_lint \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && cd /usr/local/src/drush \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep ^8 | tail -1) \ @@ -104,21 +119,10 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v1.3.7 \ @@ -128,9 +132,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 \ + 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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) \ +&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ +&& touch /var/log/mysqldump-secure.log \ +&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ +&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ +&& chmod 0400 /etc/mysqldump-secure.conf \ +&& chmod 0400 /etc/mysqldump-secure.cnf \ +&& chmod 0644 /var/log/mysqldump-secure.log \ +&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ +&& cd / \ +&& rm -rf /usr/local/src/mysqldump-secure \ + \ # phalcon -RUN set -x true \ && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ && cd /usr/local/src/phalcon-devtools \ && git checkout v2.0.9 \ @@ -140,112 +176,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 + && rm -rf /home/${MY_USER}/.*json \ +&& rm -rf /home/${MY_USER}/.cache \ +&& rm -rf /home/${MY_USER}/.composer \ +&& rm -rf /home/${MY_USER}/.config \ +&& rm -rf /home/${MY_USER}/.drush \ +&& rm -rf /home/${MY_USER}/.gem \ +&& rm -rf /home/${MY_USER}/.npm \ +&& rm -rf /home/${MY_USER}/.subversion \ +\ +&& rm -rf /root/.*json \ +&& rm -rf /root/.cache \ +&& rm -rf /root/.composer \ +&& rm -rf /root/.config \ +&& rm -rf /root/.drush \ +&& rm -rf /root/.gem \ +&& rm -rf /root/.npm \ +&& rm -rf /root/.subversion \ +\ +&& rm -rf /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ -# && touch /var/log/mysqldump-secure.log \ -# && chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ -# && chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ -# && chmod 0400 /etc/mysqldump-secure.conf \ -# && chmod 0400 /etc/mysqldump-secure.cnf \ -# && chmod 0644 /var/log/mysqldump-secure.log \ -# && sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ -# \ -# && cd / \ -# && rm -rf /usr/local/src/mysqldump-secure \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && ./configure --prefix=/usr/local \ -# && make install \ -# && cd / \ -# && rm -rf /usr/local/src/awesome-ci -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### Configure Bash -#### -#RUN \ -# { \ -# echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ -# echo "export PATH"; \ -# echo ". /etc/bash-devilbox"; \ -# echo "if [ -d /etc/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.d/*.sh ; do"; \ -# echo " if [ -r \"\${f}\" ]; then"; \ -# echo " . \"\${f}\""; \ -# echo " fi"; \ -# echo " done"; \ -# echo " unset f"; \ -# echo "fi"; \ -# } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ -# && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} -# + +### +### Configure Bash +### +RUN \ + { \ + echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ + echo "export PATH"; \ + echo ". /etc/bash-devilbox"; \ + echo "if [ -d /etc/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.d/*.sh ; do"; \ + echo " if [ -r \"\${f}\" ]; then"; \ + echo " . \"\${f}\""; \ + echo " fi"; \ + echo " done"; \ + echo " unset f"; \ + echo "fi"; \ + } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ + && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} ### @@ -258,12 +239,23 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && composer --version 2>/dev/null | grep -E 'version\s*[.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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ + && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \ && phalcon commands | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && webpack --version | grep -E '[.0-9]+' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ && true @@ -276,7 +268,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -288,7 +279,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index be4439a..802b790 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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) \ +&& ./configure --prefix=/usr/local \ +&& make install \ +&& cd / \ +&& rm -rf /usr/local/src/awesome-ci \ + \ + && gem install mixlib-config -v 2.2.4 \ +&& gem install mdl \ +&& gem install scss_lint \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && cd /usr/local/src/drush \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep ^8 | tail -1) \ @@ -104,26 +119,13 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true # drupalconsole -RUN set -x true \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v2.0.0 \ @@ -133,9 +135,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 \ + 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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) \ +&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ +&& touch /var/log/mysqldump-secure.log \ +&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ +&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ +&& chmod 0400 /etc/mysqldump-secure.conf \ +&& chmod 0400 /etc/mysqldump-secure.cnf \ +&& chmod 0644 /var/log/mysqldump-secure.log \ +&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ +&& cd / \ +&& rm -rf /usr/local/src/mysqldump-secure \ + \ # phalcon -RUN set -x true \ && 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) \ @@ -145,112 +179,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 + && rm -rf /home/${MY_USER}/.*json \ +&& rm -rf /home/${MY_USER}/.cache \ +&& rm -rf /home/${MY_USER}/.composer \ +&& rm -rf /home/${MY_USER}/.config \ +&& rm -rf /home/${MY_USER}/.drush \ +&& rm -rf /home/${MY_USER}/.gem \ +&& rm -rf /home/${MY_USER}/.npm \ +&& rm -rf /home/${MY_USER}/.subversion \ +\ +&& rm -rf /root/.*json \ +&& rm -rf /root/.cache \ +&& rm -rf /root/.composer \ +&& rm -rf /root/.config \ +&& rm -rf /root/.drush \ +&& rm -rf /root/.gem \ +&& rm -rf /root/.npm \ +&& rm -rf /root/.subversion \ +\ +&& rm -rf /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ -# && touch /var/log/mysqldump-secure.log \ -# && chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ -# && chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ -# && chmod 0400 /etc/mysqldump-secure.conf \ -# && chmod 0400 /etc/mysqldump-secure.cnf \ -# && chmod 0644 /var/log/mysqldump-secure.log \ -# && sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ -# \ -# && cd / \ -# && rm -rf /usr/local/src/mysqldump-secure \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && ./configure --prefix=/usr/local \ -# && make install \ -# && cd / \ -# && rm -rf /usr/local/src/awesome-ci -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### Configure Bash -#### -#RUN \ -# { \ -# echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ -# echo "export PATH"; \ -# echo ". /etc/bash-devilbox"; \ -# echo "if [ -d /etc/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.d/*.sh ; do"; \ -# echo " if [ -r \"\${f}\" ]; then"; \ -# echo " . \"\${f}\""; \ -# echo " fi"; \ -# echo " done"; \ -# echo " unset f"; \ -# echo "fi"; \ -# } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ -# && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} -# + +### +### Configure Bash +### +RUN \ + { \ + echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ + echo "export PATH"; \ + echo ". /etc/bash-devilbox"; \ + echo "if [ -d /etc/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.d/*.sh ; do"; \ + echo " if [ -r \"\${f}\" ]; then"; \ + echo " . \"\${f}\""; \ + echo " fi"; \ + echo " done"; \ + echo " unset f"; \ + echo "fi"; \ + } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ + && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} ### @@ -263,13 +242,24 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && composer --version 2>/dev/null | grep -E 'version\s*[.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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ + && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \ && phalcon commands | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && webpack --version | grep -E '[.0-9]+' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ && true @@ -282,7 +272,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -294,7 +283,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index 7208e23..b7fedf9 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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) \ +&& ./configure --prefix=/usr/local \ +&& make install \ +&& cd / \ +&& rm -rf /usr/local/src/awesome-ci \ + \ + && gem install mixlib-config -v 2.2.4 \ +&& gem install mdl \ +&& gem install scss_lint \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && cd /usr/local/src/drush \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ @@ -104,26 +119,13 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true # drupalconsole -RUN set -x true \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v2.0.0 \ @@ -133,9 +135,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 \ + 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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) \ +&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ +&& touch /var/log/mysqldump-secure.log \ +&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ +&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ +&& chmod 0400 /etc/mysqldump-secure.conf \ +&& chmod 0400 /etc/mysqldump-secure.cnf \ +&& chmod 0644 /var/log/mysqldump-secure.log \ +&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ +&& cd / \ +&& rm -rf /usr/local/src/mysqldump-secure \ + \ # phalcon -RUN set -x true \ && 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) \ @@ -145,112 +179,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 + && rm -rf /home/${MY_USER}/.*json \ +&& rm -rf /home/${MY_USER}/.cache \ +&& rm -rf /home/${MY_USER}/.composer \ +&& rm -rf /home/${MY_USER}/.config \ +&& rm -rf /home/${MY_USER}/.drush \ +&& rm -rf /home/${MY_USER}/.gem \ +&& rm -rf /home/${MY_USER}/.npm \ +&& rm -rf /home/${MY_USER}/.subversion \ +\ +&& rm -rf /root/.*json \ +&& rm -rf /root/.cache \ +&& rm -rf /root/.composer \ +&& rm -rf /root/.config \ +&& rm -rf /root/.drush \ +&& rm -rf /root/.gem \ +&& rm -rf /root/.npm \ +&& rm -rf /root/.subversion \ +\ +&& rm -rf /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ -# && touch /var/log/mysqldump-secure.log \ -# && chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ -# && chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ -# && chmod 0400 /etc/mysqldump-secure.conf \ -# && chmod 0400 /etc/mysqldump-secure.cnf \ -# && chmod 0644 /var/log/mysqldump-secure.log \ -# && sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ -# \ -# && cd / \ -# && rm -rf /usr/local/src/mysqldump-secure \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && ./configure --prefix=/usr/local \ -# && make install \ -# && cd / \ -# && rm -rf /usr/local/src/awesome-ci -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### Configure Bash -#### -#RUN \ -# { \ -# echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ -# echo "export PATH"; \ -# echo ". /etc/bash-devilbox"; \ -# echo "if [ -d /etc/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.d/*.sh ; do"; \ -# echo " if [ -r \"\${f}\" ]; then"; \ -# echo " . \"\${f}\""; \ -# echo " fi"; \ -# echo " done"; \ -# echo " unset f"; \ -# echo "fi"; \ -# } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ -# && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} -# + +### +### Configure Bash +### +RUN \ + { \ + echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ + echo "export PATH"; \ + echo ". /etc/bash-devilbox"; \ + echo "if [ -d /etc/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.d/*.sh ; do"; \ + echo " if [ -r \"\${f}\" ]; then"; \ + echo " . \"\${f}\""; \ + echo " fi"; \ + echo " done"; \ + echo " unset f"; \ + echo "fi"; \ + } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ + && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} ### @@ -263,13 +242,24 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && composer --version 2>/dev/null | grep -E 'version\s*[.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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ + && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \ && phalcon commands | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && webpack --version | grep -E '[.0-9]+' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ && true @@ -282,7 +272,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -294,7 +283,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index 2c35eb8..6876ea7 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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) \ +&& ./configure --prefix=/usr/local \ +&& make install \ +&& cd / \ +&& rm -rf /usr/local/src/awesome-ci \ + \ + && gem install mixlib-config -v 2.2.4 \ +&& gem install mdl \ +&& gem install scss_lint \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && cd /usr/local/src/drush \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ @@ -104,26 +119,13 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true # drupalconsole -RUN set -x true \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \ && cd /usr/local/src/laravel-installer \ && git checkout v2.0.0 \ @@ -133,9 +135,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 \ + 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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) \ +&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ +&& touch /var/log/mysqldump-secure.log \ +&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ +&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ +&& chmod 0400 /etc/mysqldump-secure.conf \ +&& chmod 0400 /etc/mysqldump-secure.cnf \ +&& chmod 0644 /var/log/mysqldump-secure.log \ +&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ +&& cd / \ +&& rm -rf /usr/local/src/mysqldump-secure \ + \ # phalcon -RUN set -x true \ && 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) \ @@ -145,112 +179,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 + && rm -rf /home/${MY_USER}/.*json \ +&& rm -rf /home/${MY_USER}/.cache \ +&& rm -rf /home/${MY_USER}/.composer \ +&& rm -rf /home/${MY_USER}/.config \ +&& rm -rf /home/${MY_USER}/.drush \ +&& rm -rf /home/${MY_USER}/.gem \ +&& rm -rf /home/${MY_USER}/.npm \ +&& rm -rf /home/${MY_USER}/.subversion \ +\ +&& rm -rf /root/.*json \ +&& rm -rf /root/.cache \ +&& rm -rf /root/.composer \ +&& rm -rf /root/.config \ +&& rm -rf /root/.drush \ +&& rm -rf /root/.gem \ +&& rm -rf /root/.npm \ +&& rm -rf /root/.subversion \ +\ +&& rm -rf /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ -# && touch /var/log/mysqldump-secure.log \ -# && chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ -# && chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ -# && chmod 0400 /etc/mysqldump-secure.conf \ -# && chmod 0400 /etc/mysqldump-secure.cnf \ -# && chmod 0644 /var/log/mysqldump-secure.log \ -# && sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ -# \ -# && cd / \ -# && rm -rf /usr/local/src/mysqldump-secure \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && ./configure --prefix=/usr/local \ -# && make install \ -# && cd / \ -# && rm -rf /usr/local/src/awesome-ci -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### Configure Bash -#### -#RUN \ -# { \ -# echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ -# echo "export PATH"; \ -# echo ". /etc/bash-devilbox"; \ -# echo "if [ -d /etc/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.d/*.sh ; do"; \ -# echo " if [ -r \"\${f}\" ]; then"; \ -# echo " . \"\${f}\""; \ -# echo " fi"; \ -# echo " done"; \ -# echo " unset f"; \ -# echo "fi"; \ -# } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ -# && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} -# + +### +### Configure Bash +### +RUN \ + { \ + echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ + echo "export PATH"; \ + echo ". /etc/bash-devilbox"; \ + echo "if [ -d /etc/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.d/*.sh ; do"; \ + echo " if [ -r \"\${f}\" ]; then"; \ + echo " . \"\${f}\""; \ + echo " fi"; \ + echo " done"; \ + echo " unset f"; \ + echo "fi"; \ + } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ + && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} ### @@ -263,13 +242,24 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && composer --version 2>/dev/null | grep -E 'version\s*[.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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ + && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \ && phalcon commands | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && webpack --version | grep -E '[.0-9]+' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ && true @@ -282,7 +272,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -294,7 +283,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index a81d1d0..c8dcc7a 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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) \ +&& ./configure --prefix=/usr/local \ +&& make install \ +&& cd / \ +&& rm -rf /usr/local/src/awesome-ci \ + \ + && gem install mixlib-config -v 2.2.4 \ +&& gem install mdl \ +&& gem install scss_lint \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && cd /usr/local/src/drush \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ @@ -104,26 +119,13 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true # drupalconsole -RUN set -x true \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && 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) \ @@ -133,9 +135,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 \ + 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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) \ +&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ +&& touch /var/log/mysqldump-secure.log \ +&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ +&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ +&& chmod 0400 /etc/mysqldump-secure.conf \ +&& chmod 0400 /etc/mysqldump-secure.cnf \ +&& chmod 0644 /var/log/mysqldump-secure.log \ +&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ +&& cd / \ +&& rm -rf /usr/local/src/mysqldump-secure \ + \ # phalcon -RUN set -x true \ && 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) \ @@ -145,112 +179,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 + && rm -rf /home/${MY_USER}/.*json \ +&& rm -rf /home/${MY_USER}/.cache \ +&& rm -rf /home/${MY_USER}/.composer \ +&& rm -rf /home/${MY_USER}/.config \ +&& rm -rf /home/${MY_USER}/.drush \ +&& rm -rf /home/${MY_USER}/.gem \ +&& rm -rf /home/${MY_USER}/.npm \ +&& rm -rf /home/${MY_USER}/.subversion \ +\ +&& rm -rf /root/.*json \ +&& rm -rf /root/.cache \ +&& rm -rf /root/.composer \ +&& rm -rf /root/.config \ +&& rm -rf /root/.drush \ +&& rm -rf /root/.gem \ +&& rm -rf /root/.npm \ +&& rm -rf /root/.subversion \ +\ +&& rm -rf /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ -# && touch /var/log/mysqldump-secure.log \ -# && chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ -# && chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ -# && chmod 0400 /etc/mysqldump-secure.conf \ -# && chmod 0400 /etc/mysqldump-secure.cnf \ -# && chmod 0644 /var/log/mysqldump-secure.log \ -# && sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ -# \ -# && cd / \ -# && rm -rf /usr/local/src/mysqldump-secure \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && ./configure --prefix=/usr/local \ -# && make install \ -# && cd / \ -# && rm -rf /usr/local/src/awesome-ci -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### Configure Bash -#### -#RUN \ -# { \ -# echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ -# echo "export PATH"; \ -# echo ". /etc/bash-devilbox"; \ -# echo "if [ -d /etc/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.d/*.sh ; do"; \ -# echo " if [ -r \"\${f}\" ]; then"; \ -# echo " . \"\${f}\""; \ -# echo " fi"; \ -# echo " done"; \ -# echo " unset f"; \ -# echo "fi"; \ -# } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ -# && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} -# + +### +### Configure Bash +### +RUN \ + { \ + echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ + echo "export PATH"; \ + echo ". /etc/bash-devilbox"; \ + echo "if [ -d /etc/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.d/*.sh ; do"; \ + echo " if [ -r \"\${f}\" ]; then"; \ + echo " . \"\${f}\""; \ + echo " fi"; \ + echo " done"; \ + echo " unset f"; \ + echo "fi"; \ + } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ + && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} ### @@ -263,13 +242,24 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && composer --version 2>/dev/null | grep -E 'version\s*[.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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ + && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \ && phalcon commands | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && webpack --version | grep -E '[.0-9]+' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ && true @@ -282,7 +272,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -294,7 +283,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index d00a820..06656fb 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -86,12 +86,27 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ # composer -RUN set -x true \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ - && true +# 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) \ +&& ./configure --prefix=/usr/local \ +&& make install \ +&& cd / \ +&& rm -rf /usr/local/src/awesome-ci \ + \ + && gem install mixlib-config -v 2.2.4 \ +&& gem install mdl \ +&& gem install scss_lint \ +&& npm install -g eslint \ +&& npm install -g jsonlint \ +&& npm install -g mdlint \ +&& npm install -g gulp \ + \ # drush -RUN set -x true \ && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ && cd /usr/local/src/drush \ && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | tail -1 | sed 's/^.*tags\///g') \ @@ -104,26 +119,13 @@ RUN set -x true \ && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ -&& rm -rf /home/${MY_USER}/.composer \ \ - && true # drupalconsole -RUN set -x true \ && curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \ && chmod +x /usr/local/bin/drupal \ - && true -# wpcli -RUN set -x true \ - && 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 \ - && true -# symfony -RUN set -x true \ - && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ - && chmod +x /usr/local/bin/symfony \ - && true +# grunt + && npm install -g grunt grunt-cli \ # laravel -RUN set -x true \ && 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) \ @@ -133,9 +135,41 @@ RUN set -x true \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ \ - && true +# 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 \ + 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ +&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ +&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + \ +# 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) \ +&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ +&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ +&& touch /var/log/mysqldump-secure.log \ +&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ +&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ +&& chmod 0400 /etc/mysqldump-secure.conf \ +&& chmod 0400 /etc/mysqldump-secure.cnf \ +&& chmod 0644 /var/log/mysqldump-secure.log \ +&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ +&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ +&& cd / \ +&& rm -rf /usr/local/src/mysqldump-secure \ + \ # phalcon -RUN set -x true \ && 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) \ @@ -145,112 +179,57 @@ RUN set -x true \ && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ && cd / \ && rm -rf /usr/local/src/phalcon-devtools/.git \ + \ +# symfony + && curl https://symfony.com/installer -L -o /usr/local/bin/symfony \ + && chmod +x /usr/local/bin/symfony \ +# webpack + && npm install -g webpack webpack-cli \ +# 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 + && rm -rf /home/${MY_USER}/.*json \ +&& rm -rf /home/${MY_USER}/.cache \ +&& rm -rf /home/${MY_USER}/.composer \ +&& rm -rf /home/${MY_USER}/.config \ +&& rm -rf /home/${MY_USER}/.drush \ +&& rm -rf /home/${MY_USER}/.gem \ +&& rm -rf /home/${MY_USER}/.npm \ +&& rm -rf /home/${MY_USER}/.subversion \ +\ +&& rm -rf /root/.*json \ +&& rm -rf /root/.cache \ +&& rm -rf /root/.composer \ +&& rm -rf /root/.config \ +&& rm -rf /root/.drush \ +&& rm -rf /root/.gem \ +&& rm -rf /root/.npm \ +&& rm -rf /root/.subversion \ +\ +&& rm -rf /tmp/* \ \ && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ -# && touch /var/log/mysqldump-secure.log \ -# && chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ -# && chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ -# && chmod 0400 /etc/mysqldump-secure.conf \ -# && chmod 0400 /etc/mysqldump-secure.cnf \ -# && chmod 0644 /var/log/mysqldump-secure.log \ -# && sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ -# \ -# && cd / \ -# && rm -rf /usr/local/src/mysqldump-secure \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && ./configure --prefix=/usr/local \ -# && make install \ -# && cd / \ -# && rm -rf /usr/local/src/awesome-ci -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### Configure Bash -#### -#RUN \ -# { \ -# echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ -# echo "export PATH"; \ -# echo ". /etc/bash-devilbox"; \ -# echo "if [ -d /etc/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.d/*.sh ; do"; \ -# echo " if [ -r \"\${f}\" ]; then"; \ -# echo " . \"\${f}\""; \ -# echo " fi"; \ -# echo " done"; \ -# echo " unset f"; \ -# echo "fi"; \ -# } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ -# && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} -# + +### +### Configure Bash +### +RUN \ + { \ + echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ + echo "export PATH"; \ + echo ". /etc/bash-devilbox"; \ + echo "if [ -d /etc/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.d/*.sh ; do"; \ + echo " if [ -r \"\${f}\" ]; then"; \ + echo " . \"\${f}\""; \ + echo " fi"; \ + echo " done"; \ + echo " unset f"; \ + echo "fi"; \ + } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ + && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} ### @@ -263,13 +242,24 @@ RUN set -x \ && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi RUN set -x \ - && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer \ - && drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush \ + && composer --version 2>/dev/null | grep -E 'version\s*[.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]+' \ + \ + && drush --version | grep -E '[.0-9]+' \ && drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \ - && wp --allow-root --version | grep -E '[.0-9]+' \ - && symfony --version | grep -E 'version\s*[.0-9]+' \ + && grunt --version | grep -E '[.0-9]+' \ && laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \ + && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \ + && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \ && phalcon commands | grep -E '[.0-9]+' \ + && symfony --version | grep -E 'version\s*[.0-9]+' \ + && webpack --version | grep -E '[.0-9]+' \ + && wp --allow-root --version | grep -E '[.0-9]+' \ && true @@ -282,7 +272,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -294,7 +283,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/build/ansible/DOCKERFILES/Dockerfile-work.j2 index b9787be..e787c13 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-work.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-work.j2 @@ -103,11 +103,11 @@ RUN set -x \ && rm -rf /var/lib/apt/lists/* +RUN set -x \ {% for tool in software_enabled %} {# Not disabled #} {% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %} # {{ tool }} -RUN set -x true \ {# Version specific pre-command available? #} {% if php_version in software_available[tool] and 'pre' in software_available[tool][php_version] %} && {{ software_available[tool][php_version]['pre'] }} \ @@ -129,113 +129,29 @@ RUN set -x true \ {% elif 'all' in software_available[tool] and 'post' in software_available[tool]['all'] %} && {{ software_available[tool]['all']['post'] }} \ {% endif %} - && true {% endif %} {% endfor %} + && true -## Mysqldump-secure -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ -# && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ -# && touch /var/log/mysqldump-secure.log \ -# && chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ -# && chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ -# && chmod 0400 /etc/mysqldump-secure.conf \ -# && chmod 0400 /etc/mysqldump-secure.cnf \ -# && chmod 0644 /var/log/mysqldump-secure.log \ -# && sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ -# && sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ -# \ -# && cd / \ -# && rm -rf /usr/local/src/mysqldump-secure \ -# && mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' -# -## Awesome-CI -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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) \ -# && ./configure --prefix=/usr/local \ -# && make install \ -# && cd / \ -# && rm -rf /usr/local/src/awesome-ci -# -## Awesome-CI requirements -#RUN set -x \ -# && gem install mdl \ -# && gem install scss_lint \ -# && npm install -g eslint \ -# && npm install -g jsonlint \ -# && npm install -g mdlint \ -# && npm install -g gulp \ -# && rm -rf /root/.gem \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Grunt -#RUN set -x \ -# && npm install -g grunt \ -# && npm install -g grunt-cli \ -# && /usr/local/node/bin/grunt --version | grep -E 'v[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Webpack -#RUN set -x \ -# && npm install -g --save-dev webpack \ -# && /usr/local/node/bin/webpack --version | grep -E '[.0-9]+' \ -# && rm -rf /root/.npm \ -# && rm -rf /root/.config \ -# && rm -rf /tmp/* -# -## Linuxbrew -#RUN set -x \ -# && mkdir -p /usr/local/src \ -# && 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 \ -# 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ -# && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ -# 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ -# && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' | grep -E 'HOMEBREW_VERSION:\s*[.0-9]+' \ -# && rm -rf /home/${MY_USER}/.cache -# -# -# -#### -#### Configure Bash -#### -#RUN \ -# { \ -# echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ -# echo "export PATH"; \ -# echo ". /etc/bash-devilbox"; \ -# echo "if [ -d /etc/bash-custom.d/ ]; then"; \ -# echo " for f in /etc/bash-custom.d/*.sh ; do"; \ -# echo " if [ -r \"\${f}\" ]; then"; \ -# echo " . \"\${f}\""; \ -# echo " fi"; \ -# echo " done"; \ -# echo " unset f"; \ -# echo "fi"; \ -# } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ -# && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} -# + +### +### Configure Bash +### +RUN \ + { \ + echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \ + echo "export PATH"; \ + echo ". /etc/bash-devilbox"; \ + echo "if [ -d /etc/bash-custom.d/ ]; then"; \ + echo " for f in /etc/bash-custom.d/*.sh ; do"; \ + echo " if [ -r \"\${f}\" ]; then"; \ + echo " . \"\${f}\""; \ + echo " fi"; \ + echo " done"; \ + echo " unset f"; \ + echo "fi"; \ + } | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \ + && chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE} {% if debug %} @@ -252,8 +168,10 @@ RUN set -x \ {% for tool in software_enabled %} {# Not disabled #} {% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %} +{% if 'check' in software_available[tool] %} && {{ software_available[tool]['check'] }} \ {% endif %} +{% endif %} {% endfor %} && true @@ -268,7 +186,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### @@ -280,7 +197,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index dec8e83..1d45259 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -48,14 +48,22 @@ apt_repositories_enabled: ### Software to actually install ### software_enabled: + # Composer needs to be first, others rely on it - composer + # Normal packages start here + - awesomeci - drush - drupalconsole - - wpcli - - symfony + - grunt - laravel + - linuxbrew + - mysqldumpsecure - phalcon - + - symfony + - webpack + - wpcli + # Cleanup needs to be last + - cleanup @@ -109,6 +117,7 @@ apt_repositories_available: # all: is generic version of defines # 7.2: is specific version of defines # disabled: [optional] Array of PHP versions for which to disable this module +# check: [optional] Include a check command to test if it was installed successfully # # all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4: # pre: [optional] Run command before 'command:' statement @@ -116,12 +125,38 @@ apt_repositories_available: # pre: [optional] Run command after 'command:' statement # software_available: + awesomeci: + check: | + mdl --version | grep -E '[.0-9]+' \ + && scss-lint --version | grep -E '[.0-9]+' \ + && eslint -v | grep -E '[.0-9]+' \ + && jsonlint --version | grep -E '[.0-9]+' \ + && mdlint --version | grep -E '[.0-9]+' \ + && gulp --version | grep -E '[.0-9]+' \ + all: + command: | + 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) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /usr/local/src/awesome-ci \ + # awesome-ci requirements + post: | + gem install mixlib-config -v 2.2.4 \ + && gem install mdl \ + && gem install scss_lint \ + && npm install -g eslint \ + && npm install -g jsonlint \ + && npm install -g mdlint \ + && npm install -g gulp \ composer: - check: composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' && rm -rf /root/.composer + check: composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' all: command: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer drush: - check: drush --version | grep -E '[.0-9]+' && rm -rf /root/.drush + check: drush --version | grep -E '[.0-9]+' 5.5: pre: | git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ @@ -146,13 +181,16 @@ software_available: && rm -rf /usr/local/src/drush/examples \ && rm -rf /usr/local/src/drush/misc \ && rm -rf /usr/local/src/drush/tests \ - && rm -rf /home/${MY_USER}/.composer \ drupalconsole: disabled: [5.4] check: drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' all: command: curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal post: chmod +x /usr/local/bin/drupal + grunt: + check: grunt --version | grep -E '[.0-9]+' + all: + command: npm install -g grunt grunt-cli laravel: check: laravel --version | grep -E '(Installer|version)\s*[.0-9]+' 7.0: @@ -185,6 +223,44 @@ software_available: && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install' \ && ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \ && rm -rf /usr/local/src/laravel-installer/laravel/.git \ + linuxbrew: + check: su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' + all: + command: | + 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 \ + 'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \ + && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \ + && v="${BASH_PROFILE}" su ${MY_USER} -c -p \ + 'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \ + && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew update' \ + && su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \ + mysqldumpsecure: + check: mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' + all: + command: | + 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) \ + && cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \ + && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \ + && cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \ + && touch /var/log/mysqldump-secure.log \ + && chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \ + && chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \ + && chmod 0400 /etc/mysqldump-secure.conf \ + && chmod 0400 /etc/mysqldump-secure.cnf \ + && chmod 0644 /var/log/mysqldump-secure.log \ + && sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \ + && sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \ + && sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \ + && sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ + && sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \ + && sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \ + && cd / \ + && rm -rf /usr/local/src/mysqldump-secure \ phalcon: check: phalcon commands | grep -E '[.0-9]+' 5.4: @@ -213,10 +289,32 @@ software_available: all: command: curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp post: chmod +x /usr/local/bin/wp - - - - + webpack: + check: webpack --version | grep -E '[.0-9]+' + all: + command: npm install -g webpack webpack-cli + cleanup: + all: + command: | + rm -rf /home/${MY_USER}/.*json \ + && rm -rf /home/${MY_USER}/.cache \ + && rm -rf /home/${MY_USER}/.composer \ + && rm -rf /home/${MY_USER}/.config \ + && rm -rf /home/${MY_USER}/.drush \ + && rm -rf /home/${MY_USER}/.gem \ + && rm -rf /home/${MY_USER}/.npm \ + && rm -rf /home/${MY_USER}/.subversion \ + \ + && rm -rf /root/.*json \ + && rm -rf /root/.cache \ + && rm -rf /root/.composer \ + && rm -rf /root/.config \ + && rm -rf /root/.drush \ + && rm -rf /root/.gem \ + && rm -rf /root/.npm \ + && rm -rf /root/.subversion \ + \ + && rm -rf /tmp/* \ ################################################################################