diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 new file mode 100644 index 0000000..4c15f79 --- /dev/null +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.4-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.4 Image" \ + image="devilbox/php-fpm" \ + tag="5.4-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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) \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ +# && 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 +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## 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} +# + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \ + && /usr/local/sbin/php-fpm --test \ + && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ + && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ +COPY ./data/bash-devilbox /etc/bash-devilbox +COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox + + + +### +### Volumes +### +VOLUME /etc/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 new file mode 100644 index 0000000..837835c --- /dev/null +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.5-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.5 Image" \ + image="devilbox/php-fpm" \ + tag="5.5-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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) \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ +# && 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 +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## 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} +# + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \ + && /usr/local/sbin/php-fpm --test \ + && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ + && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ +COPY ./data/bash-devilbox /etc/bash-devilbox +COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox + + + +### +### Volumes +### +VOLUME /etc/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 new file mode 100644 index 0000000..9e11d98 --- /dev/null +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:5.6-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 5.6 Image" \ + image="devilbox/php-fpm" \ + tag="5.6-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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) \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ +# && 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 +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## 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} +# + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \ + && /usr/local/sbin/php-fpm --test \ + && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ + && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ +COPY ./data/bash-devilbox /etc/bash-devilbox +COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox + + + +### +### Volumes +### +VOLUME /etc/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 new file mode 100644 index 0000000..f27e5f5 --- /dev/null +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.0-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.0 Image" \ + image="devilbox/php-fpm" \ + tag="7.0-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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) \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ +# && 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 +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## 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} +# + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \ + && /usr/local/sbin/php-fpm --test \ + && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ + && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ +COPY ./data/bash-devilbox /etc/bash-devilbox +COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox + + + +### +### Volumes +### +VOLUME /etc/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 new file mode 100644 index 0000000..a32024d --- /dev/null +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.1-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.1 Image" \ + image="devilbox/php-fpm" \ + tag="7.1-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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) \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ +# && 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 +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## 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} +# + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \ + && /usr/local/sbin/php-fpm --test \ + && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ + && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ +COPY ./data/bash-devilbox /etc/bash-devilbox +COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox + + + +### +### Volumes +### +VOLUME /etc/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 new file mode 100644 index 0000000..9c85fe5 --- /dev/null +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -0,0 +1,313 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:7.2-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM 7.2 Image" \ + image="devilbox/php-fpm" \ + tag="7.2-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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) \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ +# && 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 +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## 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} +# + + +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \ + && /usr/local/sbin/php-fpm --test \ + && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ + && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi + + +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ +COPY ./data/bash-devilbox /etc/bash-devilbox +COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox + + + +### +### Volumes +### +VOLUME /etc/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/Dockerfiles/work/data/bash-devilbox b/Dockerfiles/work/data/bash-devilbox new file mode 100644 index 0000000..40351aa --- /dev/null +++ b/Dockerfiles/work/data/bash-devilbox @@ -0,0 +1,60 @@ +# Bash Completion +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + fi +fi + +# Locale +export LC_ALL=en_US.UTF-8 + +# Aliases +alias ls='ls -p --color=always --group-directories-first' +alias l='ls -lp --color=always --group-directories-first' +alias ll='ls -alp --color=always --group-directories-first' +alias ..='cd ..' + +# Nice PS1 +PS1="\[\e[0;31m\]$(whoami)\[\e[0m\]@\[\e[0;36m\]php-$(php -v|head -1|grep -Eo '[0-9.]+'|head -1)\[\e[0m\] in \[\e[0;34m\]\w \[\e[0m\]\$ " + +# Show Intro +echo +echo "--------------------------------------------------------------------------------" +echo " _ _ _ _ " +echo " | | (_) | | " +echo " __| | _____ ___| | |__ _____ __" +echo " / _\` |/ _ \\ \\ / / | | '_ \\ / _ \\ \\/ /" +echo " | (_| | __/\\ V /| | | |_) | (_) > < " +echo " \\__,_|\\___| \\_/ |_|_|_.__/ \\___/_/\\_\\" +echo " " +echo " http://devilbox.org" +echo +echo +echo " | Available Tools | Project website |" +echo " |------------------|------------------------------|" +echo " | awesome-ci | gh: cytopia/awesome-ci |" +echo " | composer | https://getcomposer.org |" +echo " | druapl-console | https://drupalconsole.com |" +echo " | drush | http://www.drush.org |" +echo " | eslint | https://eslint.org |" +echo " | git | https://git-scm.com |" +echo " | laravel | gh: laravel/installer |" +echo " | linuxbrew | http://linuxbrew.sh |" +echo " | mysqldump-secure | https://mysqldump-secure.org |" +echo " | node | https://nodejs.org |" +echo " | npm | https://www.npmjs.com |" +echo " | phalcon-devtools | gh: phalcon/phalcon-devtools |" +echo " | symfony installer| gh: symfony/symfony-installer|" +echo " | webpack | ghL webpack/webpack |" +echo " | wpcli | https://wp-cli.org |" +echo +echo +echo " | Available Dirs | Description |" +echo " |------------------|------------------------------|" +echo " | /shared/httpd | Project base directory |" +echo " | /shared/backups | Backup directory |" +echo " | /var/mail | Email directory |" +echo " | /var/log | Log file directory |" +echo +echo "--------------------------------------------------------------------------------" +echo diff --git a/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh b/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh new file mode 100755 index 0000000..05c96f2 --- /dev/null +++ b/Dockerfiles/work/data/docker-entrypoint.d/40-mysqldump-secure.sh @@ -0,0 +1,83 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP +# + DEBUG_LEVEL + + +set -e +set -u + + + +############################################################ +# Functions +############################################################ + +### +### Setup Postfix for catch-all +### +fix_mds_permissions() { + mds_cfg=/etc/mysqldump-secure.conf + mds_cnf=/etc/mysqldump-secure.cnf + mds_log=/var/log/mysqldump-secure.log + mds_dir=/shared/backups/mysql + + if [ ! -d "${mds_dir}" ]; then + run "mkdir -p ${mds_dir}" + fi + + run "chown ${MY_USER}:${MY_GROUP} ${mds_cfg}" + run "chown ${MY_USER}:${MY_GROUP} ${mds_cnf}" + run "chown ${MY_USER}:${MY_GROUP} ${mds_log}" + run "chown ${MY_USER}:${MY_GROUP} ${mds_dir}" + + unset -v mds_cfg + unset -v mds_cnf + unset -v mds_log + unset -v mds_dir +} + +set_mds_settings() { + mds_user_var="${1}" + mds_pass_var="${2}" + mds_host_var="${3}" + + mds_cnf=/etc/mysqldump-secure.cnf + + # MySQL user + if ! env_set "${mds_user_var}"; then + log "info" "\$${mds_user_var} not set for mysqldump-secure. Keeping default user." + else + mds_user_val="$( env_get "${mds_user_var}" )" + log "info" "\$${mds_user_var} set for mysqldump-secure. Changing to '${mds_user_val}'" + run "sed -i'' 's/^user.*/user = ${mds_user_val}/g' ${mds_cnf}" + fi + + # MySQL pass + if ! env_set "${mds_pass_var}"; then + log "info" "\$${mds_pass_var} not set for mysqldump-secure. Keeping default password." + else + mds_pass_val="$( env_get "${mds_pass_var}" )" + log "info" "\$${mds_pass_var} set for mysqldump-secure. Changing to '******'" + run "sed -i'' 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" + fi + + # MySQL host + if ! env_set "${mds_host_var}"; then + log "info" "\$${mds_host_var} not set for mysqldump-secure. Keeping default host." + else + mds_host_val="$( env_get "${mds_host_var}" )" + log "info" "\$${mds_host_var} set for mysqldump-secure. Changing to '${mds_host_val}'" + run "sed -i'' 's/^host.*/host = ${mds_host_val}/g' ${mds_cnf}" + fi + + unset -v mds_user_var + unset -v mds_pass_var + unset -v mds_host_var + unset -v mds_user_val + unset -v mds_pass_val + unset -v mds_host_val + unset -v mds_cnf +} diff --git a/Dockerfiles/work/data/docker-entrypoint.sh b/Dockerfiles/work/data/docker-entrypoint.sh new file mode 100755 index 0000000..c096807 --- /dev/null +++ b/Dockerfiles/work/data/docker-entrypoint.sh @@ -0,0 +1,139 @@ +#!/bin/sh +# +# Available global variables: +# + MY_USER +# + MY_GROUP + +set -e +set -u + + +### +### Variables +### +PHP_INI_PATH="/usr/local/etc/php.ini" +FPM_ERROR_LOG_CFG="/usr/local/etc/php-fpm.conf" +FPM_ACCESS_LOG_CFG="/usr/local/etc/php-fpm.d/zzz-docker.conf" +FPM_LOG_DIR="/var/log/php" + +#PHP_CUST_MODULE_DIR="/etc/php-modules.d" + +PHP_CUST_INI_DIR="/etc/php-custom.d" +PHP_REAL_INI_DIR="/usr/local/etc/php.d" + +SUPERVISOR_CONFD="/etc/supervisor/conf.d" + + +### +### Source libs +### +init="$( find /docker-entrypoint.d -name '*.sh' -type f | sort -u )" +for f in ${init}; do + # shellcheck disable=SC1090 + . "${f}" +done + + +### +### Set Debug level +### +DEBUG_LEVEL="$( get_debug_level "DEBUG_ENTRYPOINT" "0" )" +log "info" "Debug level: ${DEBUG_LEVEL}" "${DEBUG_LEVEL}" + + + +############################################################# +## Sanity checks +############################################################# + +if ! command -v socat >/dev/null 2>&1; then + log "err" "socat not found, but required." "${DEBUG_LEVEL}" + exit 1 +fi + + + +############################################################# +## Entry Point +############################################################# + +### +### Change uid/gid +### +set_uid "NEW_UID" +set_gid "NEW_GID" + + +### +### Set timezone +### +set_timezone "TIMEZONE" "${PHP_INI_PATH}" + + +### +### Set Logging +### +set_docker_logs \ + "DOCKER_LOGS" \ + "${FPM_LOG_DIR}" \ + "${FPM_ERROR_LOG_CFG}" \ + "${FPM_ACCESS_LOG_CFG}" + + +### +### Setup postfix +### +set_postfix "ENABLE_MAIL" + + +### +### Validate socat port forwards +### +if ! port_forward_validate "FORWARD_PORTS_TO_LOCALHOST"; then + exit 1 +fi + + +### +### Supervisor: socat +### +for line in $( port_forward_get_lines "FORWARD_PORTS_TO_LOCALHOST" ); do + lport="$( port_forward_get_lport "${line}" )" + rhost="$( port_forward_get_rhost "${line}" )" + rport="$( port_forward_get_rport "${line}" )" + supervisor_add_service "socat-${lport}-${rhost}-${rport}" "/usr/bin/socat tcp-listen:${lport},reuseaddr,fork tcp:${rhost}:${rport}" "${SUPERVISOR_CONFD}" +done + + +### +### Supervisor: rsyslogd & postfix +### +if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then + supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${SUPERVISOR_CONFD}" "1" + supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${SUPERVISOR_CONFD}" +fi + + +### +### Supervisor: php-fpm +### +supervisor_add_service "php-fpm" "/usr/local/sbin/php-fpm" "${SUPERVISOR_CONFD}" + + +### +### Copy custom *.ini files +### +copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_REAL_INI_DIR}" + + +### +### mysqldump-secure +### +fix_mds_permissions +set_mds_settings "MYSQL_BACKUP_USER" "MYSQL_BACKUP_PASS" "MYSQL_BACKUP_HOST" + + +### +### Start +### +exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf diff --git a/Dockerfiles/work/data/sudo-devilbox b/Dockerfiles/work/data/sudo-devilbox new file mode 100644 index 0000000..16fc745 --- /dev/null +++ b/Dockerfiles/work/data/sudo-devilbox @@ -0,0 +1,7 @@ +# Keep PATH for all sudo commands +Defaults env_keep += "PATH" +Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/local/node/bin + +# Allow devilbox user to do anything without password +%devilbox ALL=(ALL) NOPASSWD: ALL + diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/build/ansible/DOCKERFILES/Dockerfile-work.j2 new file mode 100644 index 0000000..4852a61 --- /dev/null +++ b/build/ansible/DOCKERFILES/Dockerfile-work.j2 @@ -0,0 +1,321 @@ +# Auto-generated via Ansible +FROM devilbox/php-fpm:{{ php_version }}-prod +MAINTAINER "cytopia" + + +### +### Labels +### +LABEL \ + name="cytopia's PHP-FPM {{ php_version }} Image" \ + image="devilbox/php-fpm" \ + tag="{{ php_version }}-work" \ + vendor="devilbox" \ + license="MIT" + + +### +### Envs (Already set in parent container) +### +ENV BASH_PROFILE=".bashrc" + + +### +### Install Tools +### + +# System dev tools +RUN set -x \ + && apt-get update \ + && apt-get install --no-install-recommends --no-install-suggests -y \ + ack-grep \ + aspell \ + autoconf \ + automake \ + bash-completion \ + bzip2 \ + coreutils \ + curl \ + dnsutils \ + dos2unix \ + file \ + gcc \ + git \ + git-svn \ + hostname \ + htop \ + imagemagick \ + iputils-ping \ + less \ + libc-dev \ + make \ +# mongo-tools \ + mongodb-clients \ + moreutils \ + mysql-client \ + nano \ + net-tools \ + netcat \ + postgresql-client \ + python-pip \ + rubygems \ + ruby-dev \ + shellcheck \ + silversearcher-ag \ + subversion \ + sudo \ + tig \ + vim \ + w3m \ + wget \ + whois \ + xz-utils \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps \ + && rm -rf /var/lib/apt/lists/* + +## Node / NPM +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && VERSION="$( curl -Lq https://nodejs.org 2>/dev/null | grep LTS | grep -Eo 'data-version.*.' | grep -oE 'v[0-9.]+' )" \ +# && wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 --tries=30 \ +# -P /usr/local/src https://nodejs.org/dist/${VERSION}/node-${VERSION}-linux-x64.tar.xz \ +# && unxz /usr/local/src/node-${VERSION}-linux-x64.tar.xz \ +# && tar xvf /usr/local/src/node-${VERSION}-linux-x64.tar -C /usr/local/src \ +# && ln -s /usr/local/src/node-${VERSION}-linux-x64 /usr/local/node \ +# && ln -s /usr/local/node/bin/* /usr/local/bin/ \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64.tar* \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/LICENSE \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/*.md \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/include \ +# && rm -rf /usr/local/src/node-${VERSION}-linux-x64/share \ +# && npm --version | grep -E '[.0-9]+' \ +# && node --version | grep -E '[.0-9]+' \ +# && rm -rf /root/.config +# +## Composer +#RUN set -x \ +# && curl -sS https://getcomposer.org/installer | php \ +# && mv composer.phar /usr/local/bin/composer \ +# && composer self-update +## && composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /root/.composer +# +## Drush +#RUN set -x \ +# && DRUSH_VERSION="$( curl -q https://api.github.com/repos/drush-ops/drush/releases 2>/dev/null | grep tag_name | grep -Eo '\"[0-9.]+\"' | head -1 | sed 's/\"//g' )" \ +# && mkdir -p /usr/local/src \ +# && git clone https://github.com/drush-ops/drush.git /usr/local/src/drush \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush \ +# && v="${DRUSH_VERSION}" su ${MY_USER} -p -c 'cd /usr/local/src/drush && git checkout ${v}' \ +# && su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush && composer install --no-interaction --no-progress' \ +# && ln -s /usr/local/src/drush/drush /usr/local/bin/drush \ +# && drush --version | grep -E '[.0-9]+' \ +# && rm -rf /usr/local/src/drush/.git \ +# && rm -rf /usr/local/src/drush/docs \ +# && rm -rf /usr/local/src/drush/examples \ +# && rm -rf /usr/local/src/drush/misc \ +# && rm -rf /usr/local/src/drush/tests \ +# && rm -rf /root/.drush \ +# && rm -rf /home/${MY_USER}/.composer +# +## Drupal Console +#RUN set -x \ +# && curl https://drupalconsole.com/installer -L -o drupal.phar \ +# && mv drupal.phar /usr/local/bin/drupal \ +# && chmod +x /usr/local/bin/drupal +## && drupal --version | grep -E 'version\s*[.0-9]' +# +## WP-CLI +#RUN set -x \ +# && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ +# && mv wp-cli.phar /usr/local/bin/wp \ +# && chmod +x /usr/local/bin/wp \ +# && wp cli update \ +# && wp --allow-root --version | grep -E '[.0-9]+' +# +## Symfony CLI +#RUN set -x \ +# && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \ +# && chmod +x /usr/local/bin/symfony \ +# && symfony --version | grep -E 'version\s*[.0-9]+' +# +## Laravel CLI +#RUN set -x \ +# && mkdir -p /usr/local/src \ +# && 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) \ +# && chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \ +# && 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 +## && laravel --version | grep -E 'version\s*[.0-9]+' \ +## && rm -rf /home/${MY_USER}/.composer +# +## Phalcon DevTools +##RUN set -x \ +## && mkdir -p /usr/local/src \ +## && git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \ +## && cd /usr/local/src/phalcon-devtools \ +## && git checkout $(git tag | grep 'v3.0' | sort -V | tail -1) \ +## && su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \ +## && ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \ +## && cd / \ +## && rm -rf /usr/local/src/phalcon-devtools/.git \ +## && phalcon commands | grep -E '[.0-9]+' +# +## 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} +# + + +{% if debug %} +### +### Verify +### +RUN set -x \ + && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \ + && /usr/local/sbin/php-fpm --test \ + && PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ + && if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi + + +{% endif %} +### +### Copy files +### +COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh +COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/ +COPY ./data/bash-devilbox /etc/bash-devilbox +COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox + + + +### +### Volumes +### +VOLUME /etc/bash-custom.d +VOLUME /etc/php-custom.d +VOLUME /etc/php-modules.d +VOLUME /shared/backups +VOLUME /var/log/php +VOLUME /var/mail + + + +### +### Ports +### +EXPOSE 9000 + + +### +### Where to start inside the container +### +WORKDIR /shared/httpd + + +### +### Entrypoint +### +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/build/ansible/group_vars/all.yml b/build/ansible/group_vars/all.yml index e3a471e..6eddd1d 100644 --- a/build/ansible/group_vars/all.yml +++ b/build/ansible/group_vars/all.yml @@ -7,6 +7,9 @@ template_files: dst: "../../Dockerfiles/mods/Dockerfile-{{ php_version }}" - src: DOCKERFILES/Dockerfile-prod.j2 dst: "../../Dockerfiles/prod/Dockerfile-{{ php_version }}" + - src: DOCKERFILES/Dockerfile-work.j2 + dst: "../../Dockerfiles/work/Dockerfile-{{ php_version }}" +