Compare commits

..

31 Commits
0.76 ... 0.86

Author SHA1 Message Date
cytopia
3883103a41 Merge pull request #113 from devilbox/release-0.86
Re-enable uploadprogress for PHP 8.0
2019-04-23 20:37:32 +02:00
cytopia
687a660baa Re-enable uploadprogress for PHP 8.0 2019-04-23 13:30:31 +02:00
cytopia
6f8f5cc1ea Merge pull request #112 from devilbox/release-0.85
Fix MongoDB module for PHP 8.0
2019-04-23 08:35:40 +02:00
cytopia
f602092471 Fix MongoDB module for PHP 8.0 2019-04-22 14:14:57 +02:00
cytopia
bcbc8e2e45 Merge pull request #111 from devilbox/release-0.84
Release 0.84
2019-04-20 09:47:54 +02:00
cytopia
4b21c70b8f Fix RDKAFKA module 2019-04-19 12:17:58 +02:00
cytopia
b943b30b01 Add tool: Angular CLI 2019-04-19 12:03:57 +02:00
cytopia
2df2b8c7eb Add tool: Laravel Lumen cli 2019-04-19 12:03:08 +02:00
cytopia
2ab9995e99 Merge pull request #110 from devilbox/release-0.83
Fix module installations
2019-04-19 10:01:03 +02:00
cytopia
1e9cb5bcb9 Fix git checkout 2019-04-17 16:11:45 +02:00
cytopia
bdb61b9c00 Fix module installations 2019-04-17 09:30:57 +02:00
cytopia
47e221e210 Merge pull request #108 from devilbox/release-0.82
Fix apt repositories for Debian Jessie
2019-04-09 19:24:14 +02:00
cytopia
173fd463d3 Fix enabled modules for PHP 8.0 to ensure build success 2019-04-09 15:58:01 +02:00
cytopia
e4dd462ef2 Fix apt repositories for Debian Jessie 2019-04-09 12:01:26 +02:00
cytopia
4b40a0d932 Merge pull request #107 from devilbox/release-0.81
Release 0.81
2019-03-23 20:32:27 +01:00
cytopia
1126319f3d Deprecated wddx extension: https://wiki.php.net/rfc/deprecate-and-remove-ext-wddx 2019-03-23 17:53:53 +01:00
cytopia
56a5cfeb5e Update MongoDB and PostgreSQL repositories 2019-03-23 15:50:55 +01:00
cytopia
391502b9eb Fix password substitution in mysqldump-secure configuration 2019-03-23 14:19:55 +01:00
cytopia
b1c8c8b107 Add tool: Vue CLI 2019-03-23 14:01:55 +01:00
cytopia
81bdfb1026 Make installation of Oracle Instantclient version independent 2019-03-23 13:26:59 +01:00
cytopia
f69a96e16f Merge pull request #104 from devilbox/release-0.80
Rewrite gem, npm and pip install management
2019-03-08 19:36:59 +01:00
cytopia
e3ddad4e50 Revert wget usage of --hsts-file=/dev/null 2019-03-08 15:14:14 +01:00
cytopia
dfc3481773 Rewrite gem, npm and pip install management 2019-03-08 14:21:03 +01:00
cytopia
6baf6ace61 Merge pull request #103 from devilbox/release-0.79
Use PHP Xdebug 2.7 Release
2019-03-06 22:00:26 +01:00
cytopia
92aed9e7a8 Use PHP Xdebug 2.7 Release 2019-03-06 17:41:59 +01:00
cytopia
e3e0d760e9 Merge pull request #102 from devilbox/release-0.78
Use QT-patched version of wkhtmltopdf
2019-03-02 18:06:05 +01:00
cytopia
8b0fdc6cca Use QT-patched version of wkhtmltopdf 2019-03-02 14:26:31 +01:00
cytopia
554e979d0e Merge pull request #101 from devilbox/release-0.77
Fix igbinary for PHP 5.3, 5.4, 5.5 and 5.6
2019-03-02 05:26:27 +01:00
cytopia
ceabd15ee0 Update pdo_sqlsrv and sqlsrv modules 2019-03-01 15:04:45 +01:00
cytopia
0e813e6070 Fix memcache install 2019-03-01 13:03:11 +01:00
cytopia
04ad135df5 Fix igbinary for PHP 5.3, 5.4, 5.5 and 5.6 2019-02-28 13:35:51 +01:00
35 changed files with 4224 additions and 2564 deletions

13
.yamllint Normal file
View File

@@ -0,0 +1,13 @@
---
# Use 'default' rules
extends: default
# Overwrite above default rules
rules:
colons:
max-spaces-before: 0
max-spaces-after: 60
comments:
require-starting-space: false
min-spaces-from-content: 1
line-length: disable

View File

@@ -35,6 +35,13 @@ RUN set -x \
###
### Upgrade (install ps)
###
RUN set -x \
&& rm -f /etc/apt/sources.list \
&& { \
echo "deb http://ftp.debian.org/debian jessie main"; \
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
} | tee /etc/apt/sources.list
RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \

View File

@@ -35,6 +35,13 @@ RUN set -x \
###
### Upgrade (install ps)
###
RUN set -x \
&& rm -f /etc/apt/sources.list \
&& { \
echo "deb http://ftp.debian.org/debian jessie main"; \
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
} | tee /etc/apt/sources.list
RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \

View File

@@ -35,6 +35,13 @@ RUN set -x \
###
### Upgrade (install ps)
###
RUN set -x \
&& rm -f /etc/apt/sources.list \
&& { \
echo "deb http://ftp.debian.org/debian jessie main"; \
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
} | tee /etc/apt/sources.list
RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \

View File

@@ -35,6 +35,13 @@ RUN set -x \
###
### Upgrade (install ps)
###
RUN set -x \
&& rm -f /etc/apt/sources.list \
&& { \
echo "deb http://ftp.debian.org/debian jessie main"; \
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
} | tee /etc/apt/sources.list
RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \

View File

@@ -176,7 +176,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \
&& pecl install igbinary-2.0.8 \
&& docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
@@ -257,18 +257,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: oci8 ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
&& (rm -rf /usr/local/lib/php/test/oci8 || true) \
&& (rm -rf /usr/local/lib/php/doc/oci8 || true) \
@@ -332,7 +336,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \
&& pecl install rdkafka-3.0.5 \
&& docker-php-ext-enable rdkafka \
&& (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& (rm -rf /usr/local/lib/php/doc/rdkafka || true) \

View File

@@ -176,7 +176,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \
&& pecl install igbinary-2.0.8 \
&& docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
@@ -262,18 +262,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: oci8 ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install oci8 \
&& (rm -rf /usr/local/lib/php/test/oci8 || true) \
&& (rm -rf /usr/local/lib/php/doc/oci8 || true) \
@@ -337,7 +341,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \
&& pecl install rdkafka-3.0.5 \
&& docker-php-ext-enable rdkafka \
&& (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& (rm -rf /usr/local/lib/php/doc/rdkafka || true) \

View File

@@ -171,7 +171,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \
&& pecl install igbinary-2.0.8 \
&& docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
@@ -252,18 +252,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: oci8 ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
&& (rm -rf /usr/local/lib/php/test/oci8 || true) \
&& (rm -rf /usr/local/lib/php/doc/oci8 || true) \
@@ -331,7 +335,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
\
# ---- Installing PHP Extension: rdkafka ----
&& pecl install rdkafka \
&& pecl install rdkafka-3.0.5 \
&& docker-php-ext-enable rdkafka \
&& (rm -rf /usr/local/lib/php/test/rdkafka || true) \
&& (rm -rf /usr/local/lib/php/doc/rdkafka || true) \

View File

@@ -186,7 +186,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/gmp || true) \
\
# ---- Installing PHP Extension: igbinary ----
&& pecl install igbinary \
&& pecl install igbinary-2.0.8 \
&& docker-php-ext-enable igbinary \
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
@@ -267,18 +267,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: oci8 ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
&& (rm -rf /usr/local/lib/php/test/oci8 || true) \
&& (rm -rf /usr/local/lib/php/doc/oci8 || true) \

View File

@@ -236,6 +236,7 @@ RUN set -x \
# ---- Installing PHP Extension: memcache ----
&& git clone https://github.com/websupport-sk/pecl-memcache /tmp/memcache \
&& cd /tmp/memcache \
&& git checkout origin/php7 \
&& phpize \
&& ./configure --with-zlib-dir=/usr \
&& make -j$(getconf _NPROCESSORS_ONLN) \
@@ -262,18 +263,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: oci8 ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
&& (rm -rf /usr/local/lib/php/test/oci8 || true) \
&& (rm -rf /usr/local/lib/php/doc/oci8 || true) \
@@ -306,18 +311,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_oci ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr,18.3 \
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \
&& (rm -rf /usr/local/lib/php/test/pdo_oci || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \
@@ -328,7 +337,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pdo_sqlsrv ----
&& pecl install pdo_sqlsrv \
&& pecl install pdo_sqlsrv-5.3.0 \
&& docker-php-ext-enable pdo_sqlsrv \
&& (rm -rf /usr/local/lib/php/test/pdo_sqlsrv || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_sqlsrv || true) \
@@ -392,7 +401,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: sqlsrv ----
&& pecl install sqlsrv \
&& pecl install sqlsrv-5.3.0 \
&& docker-php-ext-enable sqlsrv \
&& (rm -rf /usr/local/lib/php/test/sqlsrv || true) \
&& (rm -rf /usr/local/lib/php/doc/sqlsrv || true) \

View File

@@ -236,6 +236,7 @@ RUN set -x \
# ---- Installing PHP Extension: memcache ----
&& git clone https://github.com/websupport-sk/pecl-memcache /tmp/memcache \
&& cd /tmp/memcache \
&& git checkout origin/php7 \
&& phpize \
&& ./configure --with-zlib-dir=/usr \
&& make -j$(getconf _NPROCESSORS_ONLN) \
@@ -262,18 +263,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: oci8 ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
&& (rm -rf /usr/local/lib/php/test/oci8 || true) \
&& (rm -rf /usr/local/lib/php/doc/oci8 || true) \
@@ -306,18 +311,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_oci ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr,18.3 \
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \
&& (rm -rf /usr/local/lib/php/test/pdo_oci || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \

View File

@@ -237,6 +237,7 @@ RUN set -x \
# ---- Installing PHP Extension: memcache ----
&& git clone https://github.com/websupport-sk/pecl-memcache /tmp/memcache \
&& cd /tmp/memcache \
&& git checkout origin/php7 \
&& phpize \
&& ./configure --with-zlib-dir=/usr \
&& make -j$(getconf _NPROCESSORS_ONLN) \
@@ -263,18 +264,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: oci8 ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
&& (rm -rf /usr/local/lib/php/test/oci8 || true) \
&& (rm -rf /usr/local/lib/php/doc/oci8 || true) \
@@ -307,18 +312,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_oci ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \
&& (rm -rf /usr/local/lib/php/test/pdo_oci || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \

View File

@@ -233,18 +233,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: oci8 ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
&& (rm -rf /usr/local/lib/php/test/oci8 || true) \
&& (rm -rf /usr/local/lib/php/doc/oci8 || true) \
@@ -277,18 +281,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_oci ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \
&& (rm -rf /usr/local/lib/php/test/pdo_oci || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \
@@ -299,7 +307,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
\
# ---- Installing PHP Extension: pdo_sqlsrv ----
&& pecl install pdo_sqlsrv-5.5.0preview \
&& pecl install pdo_sqlsrv \
&& docker-php-ext-enable pdo_sqlsrv \
&& (rm -rf /usr/local/lib/php/test/pdo_sqlsrv || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_sqlsrv || true) \
@@ -363,7 +371,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
\
# ---- Installing PHP Extension: sqlsrv ----
&& pecl install sqlsrv-5.5.0preview \
&& pecl install sqlsrv \
&& docker-php-ext-enable sqlsrv \
&& (rm -rf /usr/local/lib/php/test/sqlsrv || true) \
&& (rm -rf /usr/local/lib/php/doc/sqlsrv || true) \
@@ -371,9 +379,8 @@ RUN set -x \
# ---- Installing PHP Extension: swoole ----
&& git clone https://github.com/swoole/swoole-src /tmp/swoole \
&& cd /tmp/swoole \
&& git checkout master \
&& git checkout $(git describe --abbrev=0 --tags) \
&& phpize \
&& phpize \
&& ./configure \
--enable-openssl \
--enable-sockets \
@@ -425,7 +432,7 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xdebug ----
&& pecl install xdebug-2.7.0RC2 \
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& (rm -rf /usr/local/lib/php/test/xdebug || true) \
&& (rm -rf /usr/local/lib/php/doc/xdebug || true) \

View File

@@ -198,18 +198,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: oci8 ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
&& (rm -rf /usr/local/lib/php/test/oci8 || true) \
&& (rm -rf /usr/local/lib/php/doc/oci8 || true) \
@@ -242,18 +246,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_oci ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \
&& (rm -rf /usr/local/lib/php/test/pdo_oci || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \
@@ -285,7 +293,7 @@ RUN set -x \
&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis.c \
&& sed -i'' 's/ZEND_ACC_DTOR | //g' redis.c \
&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis_cluster.c \
&& ./configure \
&& ./configure --enable-redis \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
@@ -325,8 +333,7 @@ RUN set -x \
&& git clone https://github.com/swoole/swoole-src /tmp/swoole \
&& cd /tmp/swoole \
&& git checkout master \
&& git checkout $(git describe --abbrev=0 --tags) \
&& phpize \
&& phpize \
&& ./configure \
--enable-openssl \
--enable-sockets \
@@ -371,12 +378,6 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
@@ -561,8 +562,6 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^tokenizer$' \
&& php -m | grep -oiE '^uploadprogress$' \
&& php-fpm -m | grep -oiE '^uploadprogress$' \
&& php -m | grep -oiE '^wddx$' \
&& php-fpm -m | grep -oiE '^wddx$' \
&& php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^xmlreader$' \

View File

@@ -169,7 +169,14 @@ RUN set -x \
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
&& cd /tmp/memcached \
&& git checkout master \
&& phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install \
&& true \
# FIXME: This is a work-around to mitigate compile error with PHP 8.0
&& sed -i'' 's/\sTSRMLS_CC//g' php_memcached_session.c \
&& phpize \
&& ./configure --enable-memcached \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
&& docker-php-ext-enable memcached \
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
@@ -178,6 +185,17 @@ RUN set -x \
&& git clone https://github.com/mongodb/mongo-php-driver /tmp/mongodb \
&& cd /tmp/mongodb \
&& git submodule update --init \
# FIXME: This is a work-around to mitigate compile error with PHP 8.0
&& rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C)/)/g' \
&& rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C,/,/g' \
&& rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC)/)/g' \
&& rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC,/,/g' \
&& rgrep -I 'TSRMLS_DC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_DC)/)/g' \
&& rgrep -I 'TSRMLS_DC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_DC,/,/g' \
&& sed -i'' 's/TSRMLS_SET_CTX(ctx);/\/\/TSRMLS_SET_CTX(ctx);/g' php_phongo.c \
&& sed -i'' 's/TSRMLS_FETCH();/\/\/TSRMLS_FETCH();/g' php_phongo.c \
&& sed -i'' 's/TSRMLS_FETCH();/\/\/TSRMLS_FETCH();/g' phongo_compat.h \
&& sed -i'' 's/TSRMLS_FETCH();/\/\/TSRMLS_FETCH();/g' src/bson.c \
&& phpize \
&& ./configure --enable-mongodb \
&& make all \
@@ -193,18 +211,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/mysqli || true) \
\
# ---- Installing PHP Extension: oci8 ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
&& (rm -rf /usr/local/lib/php/test/oci8 || true) \
&& (rm -rf /usr/local/lib/php/doc/oci8 || true) \
@@ -237,18 +259,22 @@ RUN set -x \
&& (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \
\
# ---- Installing PHP Extension: pdo_oci ----
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-basiclite-18.3.0.0.0-2.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient18.3-devel-18.3.0.0.0-2.x86_64.rpm \
&& (ln -s /usr/lib/oracle/18.3/client64/lib/*.so* /usr/lib/ || true) \
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
\
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
\
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/18.3/client64/lib/,18.3 \
&& /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \
&& (rm -rf /usr/local/lib/php/test/pdo_oci || true) \
&& (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \
@@ -280,7 +306,14 @@ RUN set -x \
&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis.c \
&& sed -i'' 's/ZEND_ACC_DTOR | //g' redis.c \
&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis_cluster.c \
&& ./configure \
# FIXME: This is a work-around to mitigate compile error with PHP 8.0
&& rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C)/)/g' \
&& rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C,/,/g' \
&& rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC)/)/g' \
&& rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC,/,/g' \
&& rgrep -I 'TSRMLS_DC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_DC)/)/g' \
&& rgrep -I 'TSRMLS_DC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_DC,/,/g' \
&& ./configure --enable-redis \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
\
@@ -338,20 +371,21 @@ RUN set -x \
# ---- Installing PHP Extension: uploadprogress ----
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
&& cd /tmp/uploadprogress \
&& phpize \
&& ./configure --enable-uploadprogress \
&& make -j$(getconf _NPROCESSORS_ONLN) \
&& make install \
&& true \
# FIXME: This is a work-around to mitigate compile error with PHP 8.0
&& rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC)/)/g' || true \
&& rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC,/,/g' || true \
&& rgrep -I 'TSRMLS_DC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_DC)/)/g' || true \
&& rgrep -I 'TSRMLS_DC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_DC,/,/g' || true \
&& phpize \
&& ./configure --enable-uploadprogress \
&& make \
&& make install \
\
&& docker-php-ext-enable uploadprogress \
&& (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
\
# ---- Installing PHP Extension: wddx ----
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
\
# ---- Installing PHP Extension: xmlrpc ----
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
@@ -530,8 +564,6 @@ RUN set -x \
&& php-fpm -m | grep -oiE '^tokenizer$' \
&& php -m | grep -oiE '^uploadprogress$' \
&& php-fpm -m | grep -oiE '^uploadprogress$' \
&& php -m | grep -oiE '^wddx$' \
&& php-fpm -m | grep -oiE '^wddx$' \
&& php -m | grep -oiE '^xml$' \
&& php-fpm -m | grep -oiE '^xml$' \
&& php -m | grep -oiE '^xmlreader$' \

View File

@@ -30,15 +30,14 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
@@ -71,8 +70,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +81,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +100,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,20 +107,40 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
@@ -137,16 +150,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# gitflow
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
@@ -154,11 +157,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
@@ -209,21 +207,16 @@ RUN set -x \
&& curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
\
# yamllint
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# cleanup
@@ -232,8 +225,6 @@ RUN set -x \
&& 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 /home/${MY_USER}/.v8* \
\
@@ -242,15 +233,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -262,7 +345,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -297,7 +380,7 @@ RUN set -x \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -306,17 +389,37 @@ RUN set -x \
&& gulp --version | grep -E '[.0-9]+' \
\
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -30,15 +30,14 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
@@ -71,8 +70,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +81,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +100,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,22 +107,42 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
@@ -139,16 +152,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
@@ -173,11 +176,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
@@ -247,34 +245,27 @@ RUN set -x \
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# wpcli
&& curl https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \
&& chmod +x /usr/local/bin/wp \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 /home/${MY_USER}/.v8* \
\
@@ -283,15 +274,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -303,7 +386,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -339,7 +422,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -350,7 +433,6 @@ RUN set -x \
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
@@ -359,12 +441,33 @@ RUN set -x \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
&& wp --allow-root --version | grep -E '[.0-9]+' \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -30,15 +30,14 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
@@ -71,8 +70,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +81,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +100,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,22 +107,42 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
@@ -139,16 +152,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
@@ -189,11 +192,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
@@ -273,37 +271,30 @@ RUN set -x \
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 /home/${MY_USER}/.v8* \
\
@@ -312,15 +303,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -332,7 +415,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -368,7 +451,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -381,7 +464,6 @@ RUN set -x \
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
@@ -391,13 +473,34 @@ RUN set -x \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
&& wp --allow-root --version | grep -E '[.0-9]+' \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -30,15 +30,14 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
@@ -71,8 +70,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +81,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +100,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,22 +107,42 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -143,16 +156,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
@@ -196,11 +199,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
@@ -226,6 +224,10 @@ RUN set -x \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# lumen
&& COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/lumen \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
@@ -284,37 +286,30 @@ RUN set -x \
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 /home/${MY_USER}/.v8* \
\
@@ -323,15 +318,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -343,7 +430,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -379,7 +466,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
@@ -394,10 +481,10 @@ RUN set -x \
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
@@ -405,13 +492,34 @@ RUN set -x \
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
&& wp --allow-root --version | grep -E '[.0-9]+' \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -30,17 +30,15 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
@@ -71,8 +69,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +80,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +99,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,22 +106,42 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -143,16 +155,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
@@ -209,11 +211,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
@@ -239,6 +236,10 @@ RUN set -x \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# lumen
&& COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/lumen \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
@@ -297,37 +298,30 @@ RUN set -x \
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 /home/${MY_USER}/.v8* \
\
@@ -336,15 +330,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -356,7 +442,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -392,7 +478,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
@@ -408,10 +494,10 @@ RUN set -x \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
@@ -419,13 +505,34 @@ RUN set -x \
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
&& wp --allow-root --version | grep -E '[.0-9]+' \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -30,17 +30,15 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
@@ -71,8 +69,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +80,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +99,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,22 +106,42 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -143,16 +155,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
@@ -209,11 +211,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
@@ -239,6 +236,10 @@ RUN set -x \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# lumen
&& COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/lumen \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
@@ -297,37 +298,30 @@ RUN set -x \
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 /home/${MY_USER}/.v8* \
\
@@ -336,15 +330,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -356,7 +442,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -392,7 +478,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
@@ -408,10 +494,10 @@ RUN set -x \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
@@ -419,13 +505,34 @@ RUN set -x \
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
&& wp --allow-root --version | grep -E '[.0-9]+' \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -30,17 +30,15 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
@@ -71,8 +69,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +80,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +99,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,22 +106,42 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -143,16 +155,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
@@ -209,11 +211,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
@@ -239,6 +236,10 @@ RUN set -x \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# lumen
&& COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/lumen \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
@@ -297,37 +298,30 @@ RUN set -x \
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 /home/${MY_USER}/.v8* \
\
@@ -336,15 +330,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -356,7 +442,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -392,7 +478,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
@@ -408,10 +494,10 @@ RUN set -x \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
@@ -419,13 +505,34 @@ RUN set -x \
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
&& wp --allow-root --version | grep -E '[.0-9]+' \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -30,15 +30,13 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
@@ -71,8 +69,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +80,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +99,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,22 +106,42 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -143,16 +155,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
@@ -209,11 +211,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
@@ -239,6 +236,10 @@ RUN set -x \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# lumen
&& COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/lumen \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
@@ -297,37 +298,30 @@ RUN set -x \
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 /home/${MY_USER}/.v8* \
\
@@ -336,15 +330,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -356,7 +442,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -392,7 +478,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
@@ -408,10 +494,10 @@ RUN set -x \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phalcon commands | grep -E '[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
@@ -419,13 +505,34 @@ RUN set -x \
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
&& wp --allow-root --version | grep -E '[.0-9]+' \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -30,15 +30,13 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
@@ -71,8 +69,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +80,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +99,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,22 +106,42 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -143,16 +155,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
@@ -209,11 +211,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
@@ -239,6 +236,10 @@ RUN set -x \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# lumen
&& COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/lumen \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
@@ -286,37 +287,30 @@ RUN set -x \
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 /home/${MY_USER}/.v8* \
\
@@ -325,15 +319,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -345,7 +431,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -381,7 +467,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
@@ -397,23 +483,44 @@ RUN set -x \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
&& wp --allow-root --version | grep -E '[.0-9]+' \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -30,15 +30,13 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
@@ -71,8 +69,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +80,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +99,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,22 +106,42 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# asgardcms
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
@@ -143,16 +155,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# codeception
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
@@ -209,11 +211,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# laravel
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
@@ -239,6 +236,10 @@ RUN set -x \
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
\
# lumen
&& COMPOSER_HOME="/usr/local/src/composer" composer global require laravel/lumen-installer \
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/lumen \
\
# mhsendmail
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
@@ -282,37 +283,30 @@ RUN set -x \
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 /home/${MY_USER}/.v8* \
\
@@ -321,15 +315,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -341,7 +427,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -377,7 +463,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
@@ -393,22 +479,43 @@ RUN set -x \
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
&& photon --version | grep -E 'Installer [.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
&& wp --allow-root --version | grep -E '[.0-9]+' \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -30,15 +30,13 @@ RUN set -x \
curl \
dirmngr \
gnupg \
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 \
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
@@ -71,8 +69,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -82,15 +80,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -106,7 +99,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -114,22 +106,42 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
# composer
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
# ansible
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
&& /usr/local/bin/pip install --no-cache-dir ansible \
# pip
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
\
# nvm
&& git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
\
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
\
# awesomeci
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
@@ -139,16 +151,6 @@ RUN set -x \
&& make install \
&& cd / \
&& rm -rf /usr/local/src/awesome-ci \
\
&& gem install mixlib-config -v 2.2.4 \
&& gem install rb-inotify -v 0.9.10 \
&& gem install mdl \
&& gem install scss_lint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
&& rm -rf /tmp/y \
\
# deployer
&& curl -sS https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
@@ -162,11 +164,6 @@ RUN set -x \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
\
# grunt
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
&& rm -rf /tmp/y \
\
# linkcheck
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
@@ -217,37 +214,30 @@ RUN set -x \
&& curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
\
# pm2
&& until npm install pm2 -g; do sleep 1; done \
# sass
&& gem install sass \
# symfony
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
&& chmod +x /usr/local/bin/symfony \
# webpack
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
&& rm -rf /tmp/y \
# wkhtmltopdf
&& VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
\
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 \
# yamllint
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
\
&& /usr/local/bin/pip install --no-cache-dir yamllint \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
&& rm -rf /var/lib/apt/lists/* \
\
# 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 /home/${MY_USER}/.v8* \
\
@@ -256,15 +246,107 @@ RUN set -x \
&& 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 /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
# angular_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @angular/cli' devilbox \
# eslint
&& su -c '. /opt/nvm/nvm.sh; npm install -g eslint' devilbox \
# grunt
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt' devilbox \
# grunt_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g grunt-cli' devilbox \
# gulp
&& su -c '. /opt/nvm/nvm.sh; npm install -g gulp' devilbox \
# jsonlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g jsonlint' devilbox \
# pm2
&& su -c '. /opt/nvm/nvm.sh; npm install -g pm2' devilbox \
# mdlint
&& su -c '. /opt/nvm/nvm.sh; npm install -g mdlint' devilbox \
# vue_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli' devilbox \
# vue_cli_service_global
&& su -c '. /opt/nvm/nvm.sh; npm install -g @vue/cli-service-global' devilbox \
# webpack
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack' devilbox \
# webpack_cli
&& su -c '. /opt/nvm/nvm.sh; npm install -g webpack-cli' devilbox \
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
# ansible
&& pip install --no-cache-dir --force-reinstall ansible \
# yamllint
&& pip install --no-cache-dir --force-reinstall yamllint \
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
# mixlib_config
&& gem install mixlib-config -v 2.2.4 \
# rb_inotify
&& gem install rb-inotify -v 0.9.10 \
# mdl
&& gem install mdl \
# scss_lint
&& gem install scss_lint \
# sass
&& gem install sass \
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -276,7 +358,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -312,7 +394,7 @@ RUN set -x \
RUN set -x \
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+' \
&& mdl --version | grep -E '[.0-9]+' \
&& scss-lint --version | grep -E '[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
@@ -323,19 +405,39 @@ RUN set -x \
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+' \
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
&& git-flow version | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
&& phpcs --version | grep -E 'version [.0-9]+' \
&& phpcbf --version | grep -E 'version [.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
&& symfony --version | grep -E 'version\s*[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)" \
&& wp --allow-root --version | grep -E '[.0-9]+' \
\
&& ansible --version | grep -E '^ansible [.0-9]+$' \
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
&& true
\
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+' \
&& eslint -v | grep -E '[.0-9]+' \
&& grunt --version | grep -E '[.0-9]+' \
&& gulp --version | grep -E '[.0-9]+' \
&& jsonlint --version | grep -E '[.0-9]+' \
&& pm2 --no-daemon --version | grep -E '[.0-9]+' \
&& mdlint --version | grep -E '[.0-9]+' \
&& vue --version | grep -E '[.0-9]+' \
&& webpack --version | grep -E '[.0-9]+' \
\
&& mdl --version | grep -E '[.0-9]+' \
&& sass --version | grep -E '[.0-9]+' \
\
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###

View File

@@ -55,7 +55,7 @@ set_mds_settings() {
else
mds_pass_val="$( env_get "${mds_pass_var}" )"
log "info" "\$${mds_pass_var} set for mysqldump-secure. Changing to '******'" "${debug}"
run "sed -i'' 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" "${debug}"
run "perl -pi -e 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" "${debug}"
fi
# MySQL host

View File

@@ -643,12 +643,12 @@ Check out this table to see which Docker image provides what PHP modules.
<tr>
<th>7.4</th>
<td id="74-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="74-mods">bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
<td id="74-mods">bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr>
<tr>
<th>8.0</th>
<td id="80-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
<td id="80-mods">bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
<td id="80-mods">bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
</tr>
</tbody>
</table>

View File

@@ -45,6 +45,15 @@ RUN set -x \
###
### Upgrade (install ps)
###
{% if php_version in [5.2, 5.3, 5.4, 5.5] %}
RUN set -x \
&& rm -f /etc/apt/sources.list \
&& { \
echo "deb http://ftp.debian.org/debian jessie main"; \
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
} | tee /etc/apt/sources.list
{% endif %}
RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \

View File

@@ -90,8 +90,8 @@ RUN set -x \
jq \
less \
libc-dev \
libffi-dev\
libssl-dev\
libffi-dev \
libssl-dev \
libyaml-dev \
make \
mongodb-org-shell \
@@ -101,15 +101,10 @@ RUN set -x \
nano \
net-tools \
netcat \
nodejs \
openssh-client \
patch \
patchelf \
postgresql-client \
python-cffi \
python-dev \
python-pip \
python-wheel \
redis-tools \
rsync \
rubygems \
@@ -125,7 +120,6 @@ RUN set -x \
w3m \
wget \
whois \
wkhtmltopdf \
xz-utils \
yarn \
zip \
@@ -133,16 +127,14 @@ RUN set -x \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
\
# Get newer pip version
&& pip install --upgrade pip \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
&& rm -rf /var/lib/apt/lists/* \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install custom software
###
RUN set -x \
{% for tool in software_enabled %}
{# Not disabled #}
@@ -171,8 +163,111 @@ RUN set -x \
{% endif %}
{% endif %}
{% endfor %}
\
&& (rm -rf /root/.gem || true ) \
&& (rm -rf /root/.cache || true) \
&& (rm -rf /root/.composer || true) \
&& (rm -rf /root/.config || true) \
&& (rm -rf /root/.npm || true) \
\
&& (rm -rf /home/devilbox/.cache || true) \
&& (rm -rf /home/devilbox/.composer || true) \
&& (rm -rf /home/devilbox/.config || true) \
&& (rm -rf /home/devilbox/.npm || true) \
\
&& (rm -rf /usr/local/src/composer/cache/* || true) \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
###
### Install Node npm packages (globally)
###
RUN set -x \
{% for tool in npm_enabled %}
{# Not disabled #}
{% if ('disabled' not in npm_available[tool]) or (php_version not in npm_available[tool]['disabled']) %}
# {{ tool }}
{# Version specific gem version available? #}
{% if php_version in npm_available[tool] and 'version' in npm_available[tool][php_version] %}
&& su -c '. /opt/nvm/nvm.sh; npm install -g {{ npm_available[tool]['name'] }} {{ npm_available[tool][php_version]['version'] }}' devilbox \
{# Generic gem version available? #}
{% elif 'all' in npm_available[tool] and 'version' in npm_available[tool]['all'] %}
&& su -c '. /opt/nvm/nvm.sh; npm install -g {{ npm_available[tool]['name'] }} {{ npm_available[tool]['all']['version'] }}' devilbox \
{# No version info available #}
{% else %}
&& su -c '. /opt/nvm/nvm.sh; npm install -g {{ npm_available[tool]['name'] }}' devilbox \
{% endif %}
{% endif %}
{% endfor %}
\
&& ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
\
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
&& rm -rf /home/devilbox/.npm \
&& rm -rf /home/devilbox/.config \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Python pip packages
###
RUN set -x \
{% for tool in pip_enabled %}
{# Not disabled #}
{% if ('disabled' not in pip_available[tool]) or (php_version not in pip_available[tool]['disabled']) %}
# {{ tool }}
{# Version specific gem version available? #}
{% if php_version in pip_available[tool] and 'version' in pip_available[tool][php_version] %}
&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }}=={{ pip_available[tool][php_version]['version'] }} \
{# Generic gem version available? #}
{% elif 'all' in pip_available[tool] and 'version' in pip_available[tool]['all'] %}
&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }}=={{ pip_available[tool]['all']['version'] }} \
{# No version info available #}
{% else %}
&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }} \
{% endif %}
{% endif %}
{% endfor %}
\
&& rm -rf /root/.cache/pip \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
###
### Install Ruby gems
###
RUN set -x \
{% for tool in gem_enabled %}
{# Not disabled #}
{% if ('disabled' not in gem_available[tool]) or (php_version not in gem_available[tool]['disabled']) %}
# {{ tool }}
{# Version specific gem version available? #}
{% if php_version in gem_available[tool] and 'version' in gem_available[tool][php_version] %}
&& gem install {{ gem_available[tool]['name'] }} -v {{ gem_available[tool][php_version]['version'] }} \
{# Generic gem version available? #}
{% elif 'all' in gem_available[tool] and 'version' in gem_available[tool]['all'] %}
&& gem install {{ gem_available[tool]['name'] }} -v {{ gem_available[tool]['all']['version'] }} \
{# No version info available #}
{% else %}
&& gem install {{ gem_available[tool]['name'] }} \
{% endif %}
{% endif %}
{% endfor %}
\
&& rm -rf /root/.gem \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \
\
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
@@ -184,7 +279,7 @@ RUN set -x \
###
RUN \
{ \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:\${HOME}/.yarn/bin"; \
echo "export PATH"; \
echo ". /etc/bash-devilbox"; \
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
@@ -220,6 +315,7 @@ RUN set -x \
&& rm -f /usr/local/etc/php/php.ini
RUN set -x \
{# ---- SOFTWARE ---- #}
{% for tool in software_enabled %}
{# Not disabled #}
{% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %}
@@ -227,8 +323,42 @@ RUN set -x \
&& {{ software_available[tool]['check'] }} \
{% endif %}
{% endif %}
{% endfor %}
&& true
{% endfor %} \
{# ---- PIP ---- #}
{% for tool in pip_enabled %}
{# Not disabled #}
{% if ('disabled' not in pip_available[tool]) or (php_version not in pip_available[tool]['disabled']) %}
{% if 'check' in pip_available[tool] %}
&& {{ pip_available[tool]['check'] }} \
{% endif %}
{% endif %}
{% endfor %} \
{# ---- NPM ---- #}
{% for tool in npm_enabled %}
{# Not disabled #}
{% if ('disabled' not in npm_available[tool]) or (php_version not in npm_available[tool]['disabled']) %}
{% if 'check' in npm_available[tool] %}
&& {{ npm_available[tool]['check'] }} \
{% endif %}
{% endif %}
{% endfor %} \
{# ---- GEM ---- #}
{% for tool in gem_enabled %}
{# Not disabled #}
{% if ('disabled' not in gem_available[tool]) or (php_version not in gem_available[tool]['disabled']) %}
{% if 'check' in gem_available[tool] %}
&& {{ gem_available[tool]['check'] }} \
{% endif %}
{% endif %}
{% endfor %} \
&& rm -rf /home/devilbox/.config/ \
&& rm -rf /root/.ansible \
&& rm -rf /root/.console \
&& rm -rf /root/.composer \
&& rm -rf /root/.drush \
&& rm -rf /root/.pm2 \
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true)
{% endif %}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,69 @@
---
###################################################################################################
# Ansible specifi definitions
###################################################################################################
# -------------------------------------------------------------------------------------------------
# Adds version checks to Dockerfile
# -------------------------------------------------------------------------------------------------
debug: True
# -------------------------------------------------------------------------------------------------
# Available PHP versions (see inventory)
# -------------------------------------------------------------------------------------------------
php_all_versions:
- 5.2
- 5.3
- 5.4
- 5.5
- 5.6
- 7.0
- 7.1
- 7.2
- 7.3
- 7.4
- 8.0
# -------------------------------------------------------------------------------------------------
# Docker file paths for each version for base, mods, prod & work
# -------------------------------------------------------------------------------------------------
template_dockerfiles:
- src: DOCKERFILES/Dockerfile-base.j2
dst: "../../Dockerfiles/base/Dockerfile-{{ php_version }}"
- src: DOCKERFILES/Dockerfile-mods.j2
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 }}"
# -------------------------------------------------------------------------------------------------
# Assign php.ini & php-fpm.conf to PHP versions
# -------------------------------------------------------------------------------------------------
template_configurations:
# php.ini
- src: CONFIGURATIONS/php.ini.j2
dst: "../../Dockerfiles/base/data/php-ini.d/php-{{ php_version }}.ini"
cfg: "{{ php_settings_ini }}"
key: base
alt: base
- src: CONFIGURATIONS/php.ini.j2
dst: "../../Dockerfiles/work/data/php-ini.d/php-{{ php_version }}.ini"
cfg: "{{ php_settings_ini }}"
key: work
alt: base # Alternative key to use when definition is not set in 'work'
# php-fpm.conf
- src: CONFIGURATIONS/php-fpm.conf.j2
dst: "../../Dockerfiles/base/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
cfg: "{{ php_settings_fpm }}"
key: base
alt: base
- src: CONFIGURATIONS/php-fpm.conf.j2
dst: "../../Dockerfiles/work/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
cfg: "{{ php_settings_fpm }}"
key: work
alt: base

View File

@@ -0,0 +1,106 @@
---
###################################################################################################
# PHP php.ini php-fpm.conf settings
###################################################################################################
# -------------------------------------------------------------------------------------------------
# Global
# -------------------------------------------------------------------------------------------------
php_timeout: 120
# -------------------------------------------------------------------------------------------------
# php.ini
# -------------------------------------------------------------------------------------------------
php_settings_ini:
# ---- Sane default ----
base:
# Memory
memory_limit: 512M
# Timeouts
max_execution_time: "{{ php_timeout }}"
max_input_time: "{{ php_timeout }}"
# Uploads
# Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size: 72M
upload_max_filesize: 64M
max_file_uploads: 20
# Variables
variables_order: EGPCS
max_input_vars: 8000
max_input_nesting_level: 64
# Error reporting
error_reporting: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
xmlrpc_errors: 'Off'
report_memleaks: 'On'
display_errors: 'Off'
display_startup_errors: 'Off'
track_errors: 'On'
log_errors: 'On'
html_errors: 'Off'
# Xdebug settings
xdebug_default_enable: 'Off'
xdebug_profiler_enable: 'Off'
xdebug_remote_enable: 'Off'
xdebug_remote_autostart: 'Off'
# ---- Inherits from base ----
mods:
# ---- Inherits from base ----
prod:
# ---- Inherits from base and overwrites certain values ----
work:
# Error reporting
error_reporting: E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors: 'Off'
report_memleaks: 'On'
display_errors: 'On'
display_startup_errors: 'On'
track_errors: 'On'
log_errors: 'On'
html_errors: 'On'
# Xdebug settings
xdebug_default_enable: 'Off'
xdebug_profiler_enable: 'Off'
xdebug_remote_enable: 'Off'
xdebug_remote_autostart: 'Off'
# -------------------------------------------------------------------------------------------------
# php-fpm.conf
# -------------------------------------------------------------------------------------------------
php_settings_fpm:
# ---- Sane default ----
base:
# Docker
clear_env: 'no'
catch_workers_output: 'yes'
# Timeouts
request_terminate_timeout: "{{ php_timeout }}s"
# Network
listen: 9000
# Backlog
listen_backlog: 1024
# Logging
log_level: notice
error_log: /proc/self/fd/2
access_log: /proc/self/fd/2
# Worker
pm: ondemand
pm_max_children: 50 # pm: dynamic, ondemand or static
pm_start_servers: 4 # only for pm: dynamic (min_spare + (max_spare-min_spare)/2
pm_min_spare_servers: 2 # only for pm: dynamic
pm_max_spare_servers: 6 # only for pm: dynamic
pm_max_requests: 500 # pm: dynamic or ondemand
pm_process_idle_timeout: 10s # only for pm: ondemand
# User/Group
user: devilbox
group: devilbox
# ---- Inherits from base ----
mods:
# ---- Inherits from base ----
prod:
# ---- Inherits from base and overwrites certain values ----
work:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,699 @@
---
###################################################################################################
# Docker: work
###################################################################################################
#
# This file holds definition for all devibox/php-fpm:x.y-work images
#
# -------------------------------------------------------------------------------------------------
# Global variables
# -------------------------------------------------------------------------------------------------
compose_home: /usr/local/src/composer
nvm_home: /usr/local/src/nvm
# -------------------------------------------------------------------------------------------------
# Apt repositories to enable (in defined order)
# -------------------------------------------------------------------------------------------------
apt_repositories_enabled:
- backports
- blackfire
- git
- mongo
- pgsql
- yarn
# -------------------------------------------------------------------------------------------------
# Ruby gem packages to install
# -------------------------------------------------------------------------------------------------
gem_enabled:
- mixlib_config
- rb_inotify
- mdl
- scss_lint
- sass
# -------------------------------------------------------------------------------------------------
# Node npm packages to install
# -------------------------------------------------------------------------------------------------
npm_enabled:
- angular_cli
- eslint
- grunt
- grunt_cli
- gulp
- jsonlint
# https://github.com/Unitech/pm2
- pm2
- mdlint
- vue_cli
- vue_cli_service_global
- webpack
- webpack_cli
# -------------------------------------------------------------------------------------------------
# Python pip packages to install
# -------------------------------------------------------------------------------------------------
pip_enabled:
- ansible
- yamllint
# -------------------------------------------------------------------------------------------------
# Software to install (in defined order)
# -------------------------------------------------------------------------------------------------
software_enabled:
# Composer, pip and nvm need to be first, others rely on it
- composer
- pip
- nvm
# Normal packages start here
- asgardcms
- awesomeci
- codeception
- deployer
- drush7
- drush8
- drush9
- drupalconsole
- gitflow
- laravel
- linkcheck
- linuxbrew
- lumen
- mhsendmail
- mysqldumpsecure
- phalcon
- phpcs
- phpcbf
- php-cs-fixer
- phpunit
- photon
- symfony
- wkhtmltopdf
- wpcli
# Cleanup needs to be last
- cleanup
# -------------------------------------------------------------------------------------------------
# Apt repository definition
# -------------------------------------------------------------------------------------------------
# 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
#
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
# deb: Deb line to add to sources list
# key: [optional] Key id to add for repository
# pre: [optional] Run custom command to add gpg key for repository
#
apt_repositories_available:
backports:
5.2:
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
deb: deb http://archive.debian.org/debian jessie-backports main
5.3:
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
deb: deb http://archive.debian.org/debian jessie-backports main
5.4:
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
deb: deb http://archive.debian.org/debian jessie-backports main
5.5:
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
deb: deb http://archive.debian.org/debian jessie-backports main
all:
deb: deb http://ftp.debian.org/debian stretch-backports main
blackfire:
all:
deb: deb http://packages.blackfire.io/debian any main
pre: curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
git:
7.2:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
7.3:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
7.4:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
8.0:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main
all:
deb: deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main
key: A1715D88E1DF1F24
mongo:
5.2:
deb: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main
key: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
5.3:
deb: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main
key: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
5.4:
deb: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main
key: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
5.5:
deb: deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main
key: 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
all:
deb: deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main
key: 9DA31620334BD75D9DCB49F368818C72E52529D4
pgsql:
5.2:
deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
5.3:
deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
5.4:
deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
5.5:
deb: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
all:
deb: deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main
pre: curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
yarn:
all:
deb: deb http://dl.yarnpkg.com/debian/ stable main
pre: curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
# -------------------------------------------------------------------------------------------------
# Python pip definition
# -------------------------------------------------------------------------------------------------
# name: Name of the Python pip package
# 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:
# version: [optional] Specific version of Python pip package
#
pip_available:
ansible:
name: ansible
check: ansible --version | grep -E '^ansible [.0-9]+$'
yamllint:
name: yamllint
check: yamllint --version 2>&1 | grep -E '[.0-9]+'
# -------------------------------------------------------------------------------------------------
# Node npm definition
# -------------------------------------------------------------------------------------------------
# name: Name of the Node npm package
# 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:
# version: [optional] Specific version of Node npm package
#
npm_available:
angular_cli:
name: "@angular/cli"
check: ng version 2>&1 | grep -iE 'Angular CLI:\s*[.0-9]+'
eslint:
name: eslint
check: eslint -v | grep -E '[.0-9]+'
grunt:
name: grunt
grunt_cli:
name: grunt-cli
check: grunt --version | grep -E '[.0-9]+'
gulp:
name: gulp
check: gulp --version | grep -E '[.0-9]+'
jsonlint:
name: jsonlint
check: jsonlint --version | grep -E '[.0-9]+'
pm2:
name: pm2
check: pm2 --no-daemon --version | grep -E '[.0-9]+'
mdlint:
name: mdlint
check: mdlint --version | grep -E '[.0-9]+'
vue_cli:
name: "@vue/cli"
check: vue --version | grep -E '[.0-9]+'
vue_cli_service_global:
name: "@vue/cli-service-global"
webpack:
name: webpack
webpack_cli:
name: webpack-cli
check: webpack --version | grep -E '[.0-9]+'
# -------------------------------------------------------------------------------------------------
# Ruby Gems definition
# -------------------------------------------------------------------------------------------------
# name: Name of the Ruby gem package
# 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:
# version: [optional] Specific version of Ruby gem
#
gem_available:
mixlib_config:
name: mixlib-config
all:
version: 2.2.4
rb_inotify:
name: rb-inotify
all:
version: 0.9.10
mdl:
name: mdl
check: mdl --version | grep -E '[.0-9]+'
scss_lint:
name: scss_lint
sass:
name: sass
check: sass --version | grep -E '[.0-9]+'
# -------------------------------------------------------------------------------------------------
# Software definition
# -------------------------------------------------------------------------------------------------
# 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
# command: Command to execute
# pre: [optional] Run command after 'command:' statement
#
software_available:
# Composer is a dependency for others
composer:
disabled: [5.2]
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
# pip is a dependency for others
pip:
all:
command: |
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libpython-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/* \
\
&& curl -sS https://bootstrap.pypa.io/get-pip.py | python \
# nvm is a dependency for others
nvm:
check: su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[.0-9]+'
all:
pre: |
git clone https://github.com/creationix/nvm /opt/nvm \
&& cd /opt/nvm \
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
\
&& { \
echo 'export NVM_DIR="/opt/nvm"'; \
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
} >> /home/devilbox/.bashrc \
\
&& chown -R devilbox:devilbox /opt/nvm \
# Install latest and LTS version
command: |
su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
asgardcms:
disabled: [5.2, 5.3, 5.4, 8.0]
check: asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+'
all:
command: |
COMPOSER_HOME="{{ compose_home }}" composer global require asgardcms/asgardcms-installer \
&& ln -s {{ compose_home }}/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
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 \
deployer:
disabled: [5.2, 5.3]
check: dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[.0-9]+'
5.4:
command: curl -sS https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep
post: chmod +x /usr/local/bin/dep
5.5:
command: curl -sS https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep
post: chmod +x /usr/local/bin/dep
5.6:
command: curl -sS https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep
post: chmod +x /usr/local/bin/dep
all:
command: curl -sS https://deployer.org/deployer.phar -L -o /usr/local/bin/dep
post: chmod +x /usr/local/bin/dep
drush7:
disabled: [5.2, 8.0]
check: drush7 --version | grep -E '7[.0-9]+\s*$'
all:
pre: |
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
&& cd /usr/local/src/drush7 \
&& git checkout 7.4.0 \
command: |
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
&& rm -rf /usr/local/src/drush7/.git \
&& rm -rf /usr/local/src/drush7/docs \
&& rm -rf /usr/local/src/drush7/examples \
&& rm -rf /usr/local/src/drush7/misc \
drush8:
disabled: [5.2, 5.3, 8.0]
check: drush8 --version | grep -E '8[.0-9]+\s*$'
all:
pre: |
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
&& cd /usr/local/src/drush8 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
command: |
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
&& rm -rf /usr/local/src/drush8/.git \
&& rm -rf /usr/local/src/drush8/docs \
&& rm -rf /usr/local/src/drush8/examples \
&& rm -rf /usr/local/src/drush8/misc \
drush9:
disabled: [5.2, 5.3, 5.4, 5.5, 8.0]
check: drush9 --version | grep -E '9[.0-9]+\s*$'
all:
pre: |
git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
&& cd /usr/local/src/drush9 \
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
command: |
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
&& rm -rf /usr/local/src/drush9/.git \
&& rm -rf /usr/local/src/drush9/docs \
&& rm -rf /usr/local/src/drush9/examples \
&& rm -rf /usr/local/src/drush9/misc \
codeception:
disabled: [5.2, 8.0]
check: codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$'
all:
command: |
COMPOSER_HOME="{{ compose_home }}" composer global require codeception/codeception \
&& ln -s {{ compose_home }}/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
drupalconsole:
disabled: [5.2, 5.3, 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
gitflow:
check: git-flow version | grep -E '[.0-9]+'
all:
command: |
git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
&& cd /tmp/gitflow \
&& make install \
&& cd / && rm -rf /tmp/gitflow \
laravel:
check: laravel --version | grep -E '(Installer|version)\s*[.0-9]+'
disabled: [5.2, 5.3, 8.0]
5.4:
pre: |
git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
&& git checkout v1.3.7 \
5.5:
pre: |
git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
&& git checkout v2.0.0 \
5.6:
pre: |
git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
&& git checkout v2.0.0 \
7.0:
pre: |
git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
&& cd /usr/local/src/laravel-installer \
&& git checkout v2.0.0 \
all:
pre: |
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) \
command: |
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 --no-interaction --no-progress --no-dev' \
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
linkcheck:
check: linkcheck --version | grep -E '^linkcheck\sv[.0-9]+'
all:
command: |
curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
&& chmod +x /usr/local/bin/linkcheck \
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 config' \
lumen:
disabled: [5.2, 5.3, 5.4, 8.0]
check: lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[.0-9]+$'
all:
command: |
COMPOSER_HOME="{{ compose_home }}" composer global require laravel/lumen-installer \
&& ln -s {{ compose_home }}/vendor/laravel/lumen-installer/lumen /usr/local/bin/lumen \
mhsendmail:
all:
command: |
wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
&& chmod +x mhsendmail_linux_amd64 \
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
mysqldumpsecure:
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:
disabled: [5.2, 7.3, 7.4, 8.0]
check: phalcon commands | grep -E '[.0-9]+'
5.3:
pre: |
git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
&& cd /usr/local/src/phalcon-devtools \
&& git checkout v2.0.7 \
5.4:
pre: |
git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
&& cd /usr/local/src/phalcon-devtools \
&& git checkout v2.0.9 \
all:
pre: |
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) \
command: |
chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
&& 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 \
phpcs:
check: phpcs --version | grep -E 'version [.0-9]+'
5.2:
command: |
curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
&& chmod +x /usr/local/bin/phpcs \
5.3:
command: |
curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
&& chmod +x /usr/local/bin/phpcs \
all:
command: |
curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
&& chmod +x /usr/local/bin/phpcs \
phpcbf:
check: phpcbf --version | grep -E 'version [.0-9]+'
5.2:
command: |
curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
5.3:
command: |
curl -sS -L https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
all:
command: |
curl -sS -L https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
&& chmod +x /usr/local/bin/phpcbf \
php-cs-fixer:
disabled: [5.2, 7.4, 8.0]
check: php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+'
5.3:
command: |
curl -sS -L https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
&& chmod +x /usr/local/bin/php-cs-fixer \
5.4:
command: |
curl -sS -L https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
&& chmod +x /usr/local/bin/php-cs-fixer \
5.5:
command: |
curl -sS -L https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
&& chmod +x /usr/local/bin/php-cs-fixer \
all:
command: |
curl -sS -L https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
&& chmod +x /usr/local/bin/php-cs-fixer \
phpunit:
disabled: [5.2, 8.0]
check: phpunit --version | grep -iE '^PHPUnit\s[.0-9]+'
5.3:
command: |
curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
5.4:
command: |
curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
5.5:
command: |
curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
5.6:
command: |
curl -qL https://phar.phpunit.de/phpunit-5.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
7.0:
command: |
curl -qL https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
all:
command: |
curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
&& chmod +x /usr/local/bin/phpunit \
photon:
disabled: [5.2, 5.3, 5.4, 8.0]
check: photon --version | grep -E 'Installer [.0-9]+'
all:
command: |
COMPOSER_HOME="{{ compose_home }}" composer global require "photoncms/installer" \
&& ln -s {{ compose_home }}/vendor/photoncms/installer/photon /usr/local/bin/photon \
symfony:
disabled: [5.2, 5.3]
check: symfony --version | grep -E 'version\s*[.0-9]+'
all:
command: curl https://symfony.com/installer -L -o /usr/local/bin/symfony
post: chmod +x /usr/local/bin/symfony
wkhtmltopdf:
check: wkhtmltopdf --version | grep -E "^wkhtmltopdf [.0-9]+\s+\(.+patched.+\)"
5.2:
pre: VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )"
5.3:
pre: VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )"
5.4:
pre: VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )"
5.5:
pre: VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )"
all:
pre: VERSION="$( curl -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )"
command: |
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
&& curl -sS -L -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
&& dpkg -i /tmp/wkhtmltopdf.deb \
&& rm -f /tmp/wkhtmltopdf.deb \
post: |
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
&& rm -rf /var/lib/apt/lists/* \
wpcli:
disabled: [5.2]
check: wp --allow-root --version | grep -E '[.0-9]+'
5.3:
command: curl https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp
post: chmod +x /usr/local/bin/wp
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
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}/.subversion \
&& rm -rf /home/${MY_USER}/.v8* \
\
&& rm -rf /root/.*json \
&& rm -rf /root/.cache \
&& rm -rf /root/.composer \
&& rm -rf /root/.config \
&& rm -rf /root/.drush \
&& rm -rf /root/.subversion \
&& rm -rf /root/.v8* \
\
&& rm -rf /tmp/* \
&& (rm -rf /tmp/.* || true) \