Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update docker-library images #1924

Merged
merged 1 commit into from
Jul 7, 2016

Conversation

tianon
Copy link
Member

@tianon tianon commented Jul 7, 2016

- `drupal`: 8.1.4
- `elasticsearch`: remove unused `ELASTICSEARCH_MAJOR` (docker-library/elasticsearch#107)
- `java`: add more bits to `PATH` for `alpine` variants
- `memcached`: 1.4.28 (docker-library/memcached#10)
- `percona`: 5.7.13
- `php`: use `/etc/apache2/envvars` and thus the default, stock Debian Apache configuration (docker-library/php#251)
- `rabbitmq`: `hipe_compile` (docker-library/rabbitmq#91), 3.6.3 (docker-library/rabbitmq#93), `RABBITMQ_SSL_VERIFY` + `RABBITMQ_SSL_FAIL_IF_NO_PEER_CERT` support (docker-library/rabbitmq#94)
@tianon
Copy link
Member Author

tianon commented Jul 7, 2016

diff --git a/drupal_fpm/Dockerfile b/drupal_fpm/Dockerfile
index 94fdaac..6215265 100644
--- a/drupal_fpm/Dockerfile
+++ b/drupal_fpm/Dockerfile
@@ -21,8 +21,8 @@ RUN { \
 WORKDIR /var/www/html

 # https://www.drupal.org/node/3060/release
-ENV DRUPAL_VERSION 8.1.3
-ENV DRUPAL_MD5 f2eef421c2a0610b32519f8f2e094b7c
+ENV DRUPAL_VERSION 8.1.4
+ENV DRUPAL_MD5 8c07b855ffd028124eb8848526abf4d9

 RUN curl -fSL "http://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz \
    && echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c - \
diff --git a/drupal_latest/Dockerfile b/drupal_latest/Dockerfile
index cd82de8..0f23d44 100644
--- a/drupal_latest/Dockerfile
+++ b/drupal_latest/Dockerfile
@@ -23,8 +23,8 @@ RUN { \
 WORKDIR /var/www/html

 # https://www.drupal.org/node/3060/release
-ENV DRUPAL_VERSION 8.1.3
-ENV DRUPAL_MD5 f2eef421c2a0610b32519f8f2e094b7c
+ENV DRUPAL_VERSION 8.1.4
+ENV DRUPAL_MD5 8c07b855ffd028124eb8848526abf4d9

 RUN curl -fSL "http://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz \
    && echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c - \
diff --git a/elasticsearch_1.5/Dockerfile b/elasticsearch_1.5/Dockerfile
index 95c110d..81b48c5 100644
--- a/elasticsearch_1.5/Dockerfile
+++ b/elasticsearch_1.5/Dockerfile
@@ -16,7 +16,6 @@ RUN set -x \
 # https://packages.elasticsearch.org/GPG-KEY-elasticsearch
 RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 46095ACC8548582C1A2699A9D27D666CD88E42B4

-ENV ELASTICSEARCH_MAJOR 1.5
 ENV ELASTICSEARCH_VERSION 1.5.2
 ENV ELASTICSEARCH_REPO_BASE http://packages.elasticsearch.org/elasticsearch/1.5/debian

diff --git a/elasticsearch_1.6/Dockerfile b/elasticsearch_1.6/Dockerfile
index 5b66e5a..6e61419 100644
--- a/elasticsearch_1.6/Dockerfile
+++ b/elasticsearch_1.6/Dockerfile
@@ -16,7 +16,6 @@ RUN set -x \
 # https://packages.elasticsearch.org/GPG-KEY-elasticsearch
 RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 46095ACC8548582C1A2699A9D27D666CD88E42B4

-ENV ELASTICSEARCH_MAJOR 1.6
 ENV ELASTICSEARCH_VERSION 1.6.2
 ENV ELASTICSEARCH_REPO_BASE http://packages.elasticsearch.org/elasticsearch/1.6/debian

diff --git a/elasticsearch_1/Dockerfile b/elasticsearch_1/Dockerfile
index 1088fdd..ecbb4fe 100644
--- a/elasticsearch_1/Dockerfile
+++ b/elasticsearch_1/Dockerfile
@@ -16,7 +16,6 @@ RUN set -x \
 # https://packages.elasticsearch.org/GPG-KEY-elasticsearch
 RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 46095ACC8548582C1A2699A9D27D666CD88E42B4

-ENV ELASTICSEARCH_MAJOR 1.7
 ENV ELASTICSEARCH_VERSION 1.7.5
 ENV ELASTICSEARCH_REPO_BASE http://packages.elasticsearch.org/elasticsearch/1.7/debian

diff --git a/elasticsearch_2.0/Dockerfile b/elasticsearch_2.0/Dockerfile
index bdeacbf..79656be 100644
--- a/elasticsearch_2.0/Dockerfile
+++ b/elasticsearch_2.0/Dockerfile
@@ -16,7 +16,6 @@ RUN set -x \
 # https://packages.elasticsearch.org/GPG-KEY-elasticsearch
 RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 46095ACC8548582C1A2699A9D27D666CD88E42B4

-ENV ELASTICSEARCH_MAJOR 2.0
 ENV ELASTICSEARCH_VERSION 2.0.2
 ENV ELASTICSEARCH_REPO_BASE http://packages.elasticsearch.org/elasticsearch/2.x/debian

diff --git a/elasticsearch_2.1/Dockerfile b/elasticsearch_2.1/Dockerfile
index c6ffb95..e8fb758 100644
--- a/elasticsearch_2.1/Dockerfile
+++ b/elasticsearch_2.1/Dockerfile
@@ -16,7 +16,6 @@ RUN set -x \
 # https://packages.elasticsearch.org/GPG-KEY-elasticsearch
 RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 46095ACC8548582C1A2699A9D27D666CD88E42B4

-ENV ELASTICSEARCH_MAJOR 2.1
 ENV ELASTICSEARCH_VERSION 2.1.2
 ENV ELASTICSEARCH_REPO_BASE http://packages.elasticsearch.org/elasticsearch/2.x/debian

diff --git a/elasticsearch_2.2/Dockerfile b/elasticsearch_2.2/Dockerfile
index a5b61b3..2892f03 100644
--- a/elasticsearch_2.2/Dockerfile
+++ b/elasticsearch_2.2/Dockerfile
@@ -16,7 +16,6 @@ RUN set -x \
 # https://packages.elasticsearch.org/GPG-KEY-elasticsearch
 RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 46095ACC8548582C1A2699A9D27D666CD88E42B4

-ENV ELASTICSEARCH_MAJOR 2.2
 ENV ELASTICSEARCH_VERSION 2.2.2
 ENV ELASTICSEARCH_REPO_BASE http://packages.elasticsearch.org/elasticsearch/2.x/debian

diff --git a/elasticsearch_5/Dockerfile b/elasticsearch_5/Dockerfile
index 7c9171a..a779c58 100644
--- a/elasticsearch_5/Dockerfile
+++ b/elasticsearch_5/Dockerfile
@@ -16,7 +16,6 @@ RUN set -x \
 # https://packages.elasticsearch.org/GPG-KEY-elasticsearch
 RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 46095ACC8548582C1A2699A9D27D666CD88E42B4

-ENV ELASTICSEARCH_MAJOR 5.0
 ENV ELASTICSEARCH_VERSION 5.0.0-alpha4
 ENV ELASTICSEARCH_REPO_BASE http://packages.elasticsearch.org/elasticsearch/5.x/debian

diff --git a/elasticsearch_latest/Dockerfile b/elasticsearch_latest/Dockerfile
index 153c76e..ecf1536 100644
--- a/elasticsearch_latest/Dockerfile
+++ b/elasticsearch_latest/Dockerfile
@@ -16,7 +16,6 @@ RUN set -x \
 # https://packages.elasticsearch.org/GPG-KEY-elasticsearch
 RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 46095ACC8548582C1A2699A9D27D666CD88E42B4

-ENV ELASTICSEARCH_MAJOR 2.3
 ENV ELASTICSEARCH_VERSION 2.3.3
 ENV ELASTICSEARCH_REPO_BASE http://packages.elasticsearch.org/elasticsearch/2.x/debian

diff --git a/java_openjdk-7-alpine/Dockerfile b/java_openjdk-7-alpine/Dockerfile
index a0c73e2..9e68903 100644
--- a/java_openjdk-7-alpine/Dockerfile
+++ b/java_openjdk-7-alpine/Dockerfile
@@ -24,7 +24,7 @@ RUN { \
    } > /usr/local/bin/docker-java-home \
    && chmod +x /usr/local/bin/docker-java-home
 ENV JAVA_HOME /usr/lib/jvm/java-1.7-openjdk
-ENV PATH $PATH:$JAVA_HOME/bin
+ENV PATH $PATH:/usr/lib/jvm/java-1.7-openjdk/jre/bin:/usr/lib/jvm/java-1.7-openjdk/bin

 ENV JAVA_VERSION 7u91
 ENV JAVA_ALPINE_VERSION 7.91.2.6.3-r2
diff --git a/java_openjdk-7-jre-alpine/Dockerfile b/java_openjdk-7-jre-alpine/Dockerfile
index e89c8b3..4d6e1e9 100644
--- a/java_openjdk-7-jre-alpine/Dockerfile
+++ b/java_openjdk-7-jre-alpine/Dockerfile
@@ -24,7 +24,7 @@ RUN { \
    } > /usr/local/bin/docker-java-home \
    && chmod +x /usr/local/bin/docker-java-home
 ENV JAVA_HOME /usr/lib/jvm/java-1.7-openjdk/jre
-ENV PATH $PATH:$JAVA_HOME/bin
+ENV PATH $PATH:/usr/lib/jvm/java-1.7-openjdk/jre/bin:/usr/lib/jvm/java-1.7-openjdk/bin

 ENV JAVA_VERSION 7u91
 ENV JAVA_ALPINE_VERSION 7.91.2.6.3-r2
diff --git a/java_openjdk-8-alpine/Dockerfile b/java_openjdk-8-alpine/Dockerfile
index 1eecbcd..6ca10d6 100644
--- a/java_openjdk-8-alpine/Dockerfile
+++ b/java_openjdk-8-alpine/Dockerfile
@@ -24,7 +24,7 @@ RUN { \
    } > /usr/local/bin/docker-java-home \
    && chmod +x /usr/local/bin/docker-java-home
 ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
-ENV PATH $PATH:$JAVA_HOME/bin
+ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin

 ENV JAVA_VERSION 8u92
 ENV JAVA_ALPINE_VERSION 8.92.14-r1
diff --git a/java_openjdk-8-jre-alpine/Dockerfile b/java_openjdk-8-jre-alpine/Dockerfile
index 45292fe..f7d8155 100644
--- a/java_openjdk-8-jre-alpine/Dockerfile
+++ b/java_openjdk-8-jre-alpine/Dockerfile
@@ -24,7 +24,7 @@ RUN { \
    } > /usr/local/bin/docker-java-home \
    && chmod +x /usr/local/bin/docker-java-home
 ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk/jre
-ENV PATH $PATH:$JAVA_HOME/bin
+ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin

 ENV JAVA_VERSION 8u92
 ENV JAVA_ALPINE_VERSION 8.92.14-r1
diff --git a/memcached_alpine/Dockerfile b/memcached_alpine/Dockerfile
index 1943a2d..80ea9e1 100644
--- a/memcached_alpine/Dockerfile
+++ b/memcached_alpine/Dockerfile
@@ -1,10 +1,10 @@
-FROM alpine:3.3
+FROM alpine:3.4

 # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
 RUN adduser -D memcache

-ENV MEMCACHED_VERSION 1.4.27
-ENV MEMCACHED_SHA1 b5869038dc5f2dce24f3a62806eadfd64d58662e
+ENV MEMCACHED_VERSION 1.4.28
+ENV MEMCACHED_SHA1 c27662ca84933f5ebd837a86dde9378d05c1f200

 RUN set -x \
    && apk add --no-cache --virtual .build-deps \
diff --git a/memcached_latest/Dockerfile b/memcached_latest/Dockerfile
index 3c0bfe4..84473bb 100644
--- a/memcached_latest/Dockerfile
+++ b/memcached_latest/Dockerfile
@@ -7,8 +7,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
        libevent-2.0-5 \
    && rm -rf /var/lib/apt/lists/*

-ENV MEMCACHED_VERSION 1.4.27
-ENV MEMCACHED_SHA1 b5869038dc5f2dce24f3a62806eadfd64d58662e
+ENV MEMCACHED_VERSION 1.4.28
+ENV MEMCACHED_SHA1 c27662ca84933f5ebd837a86dde9378d05c1f200

 RUN buildDeps=' \
        gcc \
diff --git a/percona_latest/Dockerfile b/percona_latest/Dockerfile
index f8a2ac5..a394705 100644
--- a/percona_latest/Dockerfile
+++ b/percona_latest/Dockerfile
@@ -28,7 +28,7 @@ RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 430BDF5C56E7C
 RUN echo 'deb http://repo.percona.com/apt jessie main' > /etc/apt/sources.list.d/percona.list

 ENV PERCONA_MAJOR 5.7
-ENV PERCONA_VERSION 5.7.12-5-1.jessie
+ENV PERCONA_VERSION 5.7.13-6-1.jessie

 # the "/var/lib/mysql" stuff here is because the mysql-server postinst doesn't have an explicit way to disable the mysql_install_db codepath besides having a database already "configured" (ie, stuff in /var/lib/mysql/mysql)
 # also, we set debconf keys to make APT a little quieter
diff --git a/php_5-apache/Dockerfile b/php_5-apache/Dockerfile
index cc80952..440868e 100644
--- a/php_5-apache/Dockerfile
+++ b/php_5-apache/Dockerfile
@@ -25,14 +25,43 @@ RUN mkdir -p $PHP_INI_DIR/conf.d
 ##<autogenerated>##
 RUN apt-get update && apt-get install -y apache2-bin apache2.2-common --no-install-recommends && rm -rf /var/lib/apt/lists/*

-RUN rm -rf /var/www/html && mkdir -p /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html && chown -R www-data:www-data /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html
+ENV APACHE_CONFDIR /etc/apache2
+ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars
+
+# setup directories and permissions
+RUN set -ex \
+   && . "$APACHE_ENVVARS" \
+   && for dir in \
+       "$APACHE_LOCK_DIR" \
+       "$APACHE_RUN_DIR" \
+       "$APACHE_LOG_DIR" \
+       /var/www/html \
+   ; do \
+       rm -rvf "$dir" \
+       && mkdir -p "$dir" \
+       && chown -R "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \
+   done

 # Apache + PHP requires preforking Apache for best results
 RUN a2dismod mpm_event && a2enmod mpm_prefork

-RUN mv /etc/apache2/apache2.conf /etc/apache2/apache2.conf.dist && rm /etc/apache2/conf-enabled/* /etc/apache2/sites-enabled/*
-COPY apache2.conf /etc/apache2/apache2.conf
-# it'd be nice if we could not COPY apache2.conf until the end of the Dockerfile, but its contents are checked by PHP during compilation
+# logs should go to stdout / stderr
+RUN set -ex \
+   && . "$APACHE_ENVVARS" \
+   && ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log" \
+   && ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log" \
+   && ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"
+
+# PHP files should be handled by PHP, and should be preferred over any other file type
+RUN { \
+       echo '<FilesMatch \.php$>'; \
+       echo '\tSetHandler application/x-httpd-php'; \
+       echo '</FilesMatch>'; \
+       echo; \
+       echo 'DirectoryIndex disabled'; \
+       echo 'DirectoryIndex index.php index.html'; \
+   } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \
+   && a2enconf docker-php

 ENV PHP_EXTRA_BUILD_DEPS apache2-dev
 ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2
diff --git a/php_5-apache/apache2-foreground b/php_5-apache/apache2-foreground
index 70def2f..662a39a 100755
--- a/php_5-apache/apache2-foreground
+++ b/php_5-apache/apache2-foreground
@@ -1,7 +1,17 @@
 #!/bin/bash
 set -e

+# Note: we don't just use "apache2ctl" here because it itself is just a shell-script wrapper around apache2 which provides extra functionality like "apache2ctl start" for launching apache2 in the background.
+# (also, when run as "apache2ctl <apache args>", it does not use "exec", which leaves an undesirable resident shell process)
+
+: "${APACHE_CONFDIR:=/etc/apache2}"
+: "${APACHE_ENVVARS:=$APACHE_CONFDIR/envvars}"
+if test -f "$APACHE_ENVVARS"; then
+   . "$APACHE_ENVVARS"
+fi
+
 # Apache gets grumpy about PID files pre-existing
-rm -f /var/run/apache2/apache2.pid
+: "${APACHE_PID_FILE:=${APACHE_RUN_DIR:=/var/run/apache2}/apache2.pid}"
+rm -f "$APACHE_PID_FILE"

-exec apache2 -DFOREGROUND
+exec apache2 -DFOREGROUND "$@"
diff --git a/php_5-apache/apache2.conf b/php_5-apache/apache2.conf
deleted file mode 100644
index ab5b264..0000000
diff --git a/php_5.5-apache/Dockerfile b/php_5.5-apache/Dockerfile
index 3ad043b..fa055bc 100644
--- a/php_5.5-apache/Dockerfile
+++ b/php_5.5-apache/Dockerfile
@@ -25,14 +25,43 @@ RUN mkdir -p $PHP_INI_DIR/conf.d
 ##<autogenerated>##
 RUN apt-get update && apt-get install -y apache2-bin apache2.2-common --no-install-recommends && rm -rf /var/lib/apt/lists/*

-RUN rm -rf /var/www/html && mkdir -p /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html && chown -R www-data:www-data /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html
+ENV APACHE_CONFDIR /etc/apache2
+ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars
+
+# setup directories and permissions
+RUN set -ex \
+   && . "$APACHE_ENVVARS" \
+   && for dir in \
+       "$APACHE_LOCK_DIR" \
+       "$APACHE_RUN_DIR" \
+       "$APACHE_LOG_DIR" \
+       /var/www/html \
+   ; do \
+       rm -rvf "$dir" \
+       && mkdir -p "$dir" \
+       && chown -R "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \
+   done

 # Apache + PHP requires preforking Apache for best results
 RUN a2dismod mpm_event && a2enmod mpm_prefork

-RUN mv /etc/apache2/apache2.conf /etc/apache2/apache2.conf.dist && rm /etc/apache2/conf-enabled/* /etc/apache2/sites-enabled/*
-COPY apache2.conf /etc/apache2/apache2.conf
-# it'd be nice if we could not COPY apache2.conf until the end of the Dockerfile, but its contents are checked by PHP during compilation
+# logs should go to stdout / stderr
+RUN set -ex \
+   && . "$APACHE_ENVVARS" \
+   && ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log" \
+   && ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log" \
+   && ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"
+
+# PHP files should be handled by PHP, and should be preferred over any other file type
+RUN { \
+       echo '<FilesMatch \.php$>'; \
+       echo '\tSetHandler application/x-httpd-php'; \
+       echo '</FilesMatch>'; \
+       echo; \
+       echo 'DirectoryIndex disabled'; \
+       echo 'DirectoryIndex index.php index.html'; \
+   } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \
+   && a2enconf docker-php

 ENV PHP_EXTRA_BUILD_DEPS apache2-dev
 ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2
diff --git a/php_5.5-apache/apache2-foreground b/php_5.5-apache/apache2-foreground
index 70def2f..662a39a 100755
--- a/php_5.5-apache/apache2-foreground
+++ b/php_5.5-apache/apache2-foreground
@@ -1,7 +1,17 @@
 #!/bin/bash
 set -e

+# Note: we don't just use "apache2ctl" here because it itself is just a shell-script wrapper around apache2 which provides extra functionality like "apache2ctl start" for launching apache2 in the background.
+# (also, when run as "apache2ctl <apache args>", it does not use "exec", which leaves an undesirable resident shell process)
+
+: "${APACHE_CONFDIR:=/etc/apache2}"
+: "${APACHE_ENVVARS:=$APACHE_CONFDIR/envvars}"
+if test -f "$APACHE_ENVVARS"; then
+   . "$APACHE_ENVVARS"
+fi
+
 # Apache gets grumpy about PID files pre-existing
-rm -f /var/run/apache2/apache2.pid
+: "${APACHE_PID_FILE:=${APACHE_RUN_DIR:=/var/run/apache2}/apache2.pid}"
+rm -f "$APACHE_PID_FILE"

-exec apache2 -DFOREGROUND
+exec apache2 -DFOREGROUND "$@"
diff --git a/php_5.5-apache/apache2.conf b/php_5.5-apache/apache2.conf
deleted file mode 100644
index ab5b264..0000000
diff --git a/php_apache/Dockerfile b/php_apache/Dockerfile
index e8e3d84..f1ebb5b 100644
--- a/php_apache/Dockerfile
+++ b/php_apache/Dockerfile
@@ -25,14 +25,43 @@ RUN mkdir -p $PHP_INI_DIR/conf.d
 ##<autogenerated>##
 RUN apt-get update && apt-get install -y apache2-bin apache2.2-common --no-install-recommends && rm -rf /var/lib/apt/lists/*

-RUN rm -rf /var/www/html && mkdir -p /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html && chown -R www-data:www-data /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/www/html
+ENV APACHE_CONFDIR /etc/apache2
+ENV APACHE_ENVVARS $APACHE_CONFDIR/envvars
+
+# setup directories and permissions
+RUN set -ex \
+   && . "$APACHE_ENVVARS" \
+   && for dir in \
+       "$APACHE_LOCK_DIR" \
+       "$APACHE_RUN_DIR" \
+       "$APACHE_LOG_DIR" \
+       /var/www/html \
+   ; do \
+       rm -rvf "$dir" \
+       && mkdir -p "$dir" \
+       && chown -R "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; \
+   done

 # Apache + PHP requires preforking Apache for best results
 RUN a2dismod mpm_event && a2enmod mpm_prefork

-RUN mv /etc/apache2/apache2.conf /etc/apache2/apache2.conf.dist && rm /etc/apache2/conf-enabled/* /etc/apache2/sites-enabled/*
-COPY apache2.conf /etc/apache2/apache2.conf
-# it'd be nice if we could not COPY apache2.conf until the end of the Dockerfile, but its contents are checked by PHP during compilation
+# logs should go to stdout / stderr
+RUN set -ex \
+   && . "$APACHE_ENVVARS" \
+   && ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log" \
+   && ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log" \
+   && ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"
+
+# PHP files should be handled by PHP, and should be preferred over any other file type
+RUN { \
+       echo '<FilesMatch \.php$>'; \
+       echo '\tSetHandler application/x-httpd-php'; \
+       echo '</FilesMatch>'; \
+       echo; \
+       echo 'DirectoryIndex disabled'; \
+       echo 'DirectoryIndex index.php index.html'; \
+   } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" \
+   && a2enconf docker-php

 ENV PHP_EXTRA_BUILD_DEPS apache2-dev
 ENV PHP_EXTRA_CONFIGURE_ARGS --with-apxs2
diff --git a/php_apache/apache2-foreground b/php_apache/apache2-foreground
index 70def2f..662a39a 100755
--- a/php_apache/apache2-foreground
+++ b/php_apache/apache2-foreground
@@ -1,7 +1,17 @@
 #!/bin/bash
 set -e

+# Note: we don't just use "apache2ctl" here because it itself is just a shell-script wrapper around apache2 which provides extra functionality like "apache2ctl start" for launching apache2 in the background.
+# (also, when run as "apache2ctl <apache args>", it does not use "exec", which leaves an undesirable resident shell process)
+
+: "${APACHE_CONFDIR:=/etc/apache2}"
+: "${APACHE_ENVVARS:=$APACHE_CONFDIR/envvars}"
+if test -f "$APACHE_ENVVARS"; then
+   . "$APACHE_ENVVARS"
+fi
+
 # Apache gets grumpy about PID files pre-existing
-rm -f /var/run/apache2/apache2.pid
+: "${APACHE_PID_FILE:=${APACHE_RUN_DIR:=/var/run/apache2}/apache2.pid}"
+rm -f "$APACHE_PID_FILE"

-exec apache2 -DFOREGROUND
+exec apache2 -DFOREGROUND "$@"
diff --git a/php_apache/apache2.conf b/php_apache/apache2.conf
deleted file mode 100644
index ab5b264..0000000
diff --git a/rabbitmq_latest/Dockerfile b/rabbitmq_latest/Dockerfile
index 6bd513e..00590fc 100644
--- a/rabbitmq_latest/Dockerfile
+++ b/rabbitmq_latest/Dockerfile
@@ -20,10 +20,26 @@ RUN set -x \
 # Add the officially endorsed Erlang debian repository:
 # See:
 #  - http://www.erlang.org/download.html
-#  - https://www.erlang-solutions.com/downloads/download-erlang-otp
+#  - https://www.erlang-solutions.com/resources/download.html
 RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 434975BD900CCBE4F7EE1B1ED208507CA14F4FCA
 RUN echo 'deb http://packages.erlang-solutions.com/debian jessie contrib' > /etc/apt/sources.list.d/erlang.list

+# install Erlang
+RUN apt-get update \
+   && apt-get install -y --no-install-recommends \
+       erlang-asn1 \
+       erlang-base-hipe \
+       erlang-crypto \
+       erlang-eldap \
+       erlang-inets \
+       erlang-mnesia \
+       erlang-nox \
+       erlang-os-mon \
+       erlang-public-key \
+       erlang-ssl \
+       erlang-xmerl \
+   && rm -rf /var/lib/apt/lists/*
+
 # get logs to stdout (thanks @dumbbell for pushing this upstream! :D)
 ENV RABBITMQ_LOGS=- RABBITMQ_SASL_LOGS=-
 # https://github.com/rabbitmq/rabbitmq-server/commit/53af45bf9a162dec849407d114041aad3d84feaf
@@ -33,18 +49,17 @@ ENV RABBITMQ_LOGS=- RABBITMQ_SASL_LOGS=-
 RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 0A9AF2115F4687BD29803A206B73A36E6026DFCA
 RUN echo 'deb http://www.rabbitmq.com/debian testing main' > /etc/apt/sources.list.d/rabbitmq.list

-ENV RABBITMQ_VERSION 3.6.2
-ENV RABBITMQ_DEBIAN_VERSION 3.6.2-1
+ENV RABBITMQ_VERSION 3.6.3
+ENV RABBITMQ_DEBIAN_VERSION 3.6.3-1

 RUN apt-get update && apt-get install -y --no-install-recommends \
-       erlang-nox erlang-mnesia erlang-public-key erlang-crypto erlang-ssl erlang-asn1 erlang-inets erlang-os-mon erlang-xmerl erlang-eldap \
        rabbitmq-server=$RABBITMQ_DEBIAN_VERSION \
    && rm -rf /var/lib/apt/lists/*

 # /usr/sbin/rabbitmq-server has some irritating behavior, and only exists to "su - rabbitmq /usr/lib/rabbitmq/bin/rabbitmq-server ..."
 ENV PATH /usr/lib/rabbitmq/bin:$PATH

-RUN echo '[{rabbit, [{loopback_users, []}]}].' > /etc/rabbitmq/rabbitmq.config
+RUN echo '[ { rabbit, [ { loopback_users, [ ] } ] } ].' > /etc/rabbitmq/rabbitmq.config

 # set home so that any `--user` knows where to put the erlang cookie
 ENV HOME /var/lib/rabbitmq
@@ -59,8 +74,9 @@ RUN ln -sf /var/lib/rabbitmq/.erlang.cookie /root/

 RUN ln -sf /usr/lib/rabbitmq/lib/rabbitmq_server-$RABBITMQ_VERSION/plugins /plugins

-COPY docker-entrypoint.sh /
-ENTRYPOINT ["/docker-entrypoint.sh"]
+COPY docker-entrypoint.sh /usr/local/bin/
+RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat
+ENTRYPOINT ["docker-entrypoint.sh"]

 EXPOSE 4369 5671 5672 25672
 CMD ["rabbitmq-server"]
diff --git a/rabbitmq_latest/docker-entrypoint.sh b/rabbitmq_latest/docker-entrypoint.sh
index 85a05c0..c56ea23 100755
--- a/rabbitmq_latest/docker-entrypoint.sh
+++ b/rabbitmq_latest/docker-entrypoint.sh
@@ -2,19 +2,90 @@
 set -e

 # allow the container to be started with `--user`
-if [ "$1" = 'rabbitmq-server' -a "$(id -u)" = '0' ]; then
-   chown -R rabbitmq /var/lib/rabbitmq
+if [[ "$1" == rabbitmq* ]] && [ "$(id -u)" = '0' ]; then
+   if [ "$1" = 'rabbitmq-server' ]; then
+       chown -R rabbitmq /var/lib/rabbitmq
+   fi
    exec gosu rabbitmq "$BASH_SOURCE" "$@"
 fi

-ssl=
-if [ "$RABBITMQ_SSL_CERT_FILE" -a "$RABBITMQ_SSL_KEY_FILE" -a "$RABBITMQ_SSL_CA_FILE" ]; then
-   ssl=1
+# backwards compatibility for old environment variables
+: "${RABBITMQ_SSL_CERTFILE:=${RABBITMQ_SSL_CERT_FILE:-}}"
+: "${RABBITMQ_SSL_KEYFILE:=${RABBITMQ_SSL_KEY_FILE:-}}"
+: "${RABBITMQ_SSL_CACERTFILE:=${RABBITMQ_SSL_CA_FILE:-}}"
+
+# https://www.rabbitmq.com/configure.html
+fileConfigs=(
+   ssl_cacertfile
+   ssl_certfile
+   ssl_keyfile
+)
+configs=(
+   default_pass
+   default_user
+   default_vhost
+   hipe_compile
+   ssl_fail_if_no_peer_cert
+   ssl_verify
+   "${fileConfigs[@]}"
+)
+
+haveConfig=
+haveSslConfig=
+for conf in "${configs[@]}"; do
+   var="RABBITMQ_${conf^^}"
+   val="${!var}"
+   if [ "$val" ]; then
+       haveConfig=1
+       if [[ "$conf" == ssl_* ]]; then
+           haveSslConfig=1
+       fi
+   fi
+done
+if [ "$haveSslConfig" ]; then
+   missing=()
+   for sslConf in cacertfile certfile keyfile; do
+       var="RABBITMQ_SSL_${sslConf^^}"
+       val="${!var}"
+       if [ -z "$val" ]; then
+           missing+=( "$var" )
+       fi
+   done
+   if [ "${#missing[@]}" -gt 0 ]; then
+       {
+           echo
+           echo 'error: SSL requested, but missing required configuration'
+           for miss in "${missing[@]}"; do
+               echo "  - $miss"
+           done
+           echo
+       } >&2
+       exit 1
+   fi
+fi
+missingFiles=()
+for conf in "${fileConfigs[@]}"; do
+   var="RABBITMQ_${conf^^}"
+   val="${!var}"
+   if [ "$val" ] && [ ! -f "$val" ]; then
+       missingFiles+=( "$val ($var)" )
+   fi
+done
+if [ "${#missingFiles[@]}" -gt 0 ]; then
+   {
+       echo
+       echo 'error: files specified, but missing'
+       for miss in "${missingFiles[@]}"; do
+           echo "  - $miss"
+       done
+       echo
+   } >&2
+   exit 1
 fi

 # If long & short hostnames are not the same, use long hostnames
 if [ "$(hostname)" != "$(hostname -s)" ]; then
-   export RABBITMQ_USE_LONGNAME=true
+   : "${RABBITMQ_USE_LONGNAME:=true}"
 fi

 if [ "$RABBITMQ_ERLANG_COOKIE" ]; then
@@ -31,114 +102,139 @@ if [ "$RABBITMQ_ERLANG_COOKIE" ]; then
    fi
 fi

-if [ "$1" = 'rabbitmq-server' ]; then
-   configs=(
-       # https://www.rabbitmq.com/configure.html
-       default_pass
-       default_user
-       default_vhost
-       ssl_ca_file
-       ssl_cert_file
-       ssl_key_file
+# prints "$2$1$3$1...$N"
+join() {
+   local sep="$1"; shift
+   local out; printf -v out "${sep//%/%%}%s" "$@"
+   echo "${out#$sep}"
+}
+indent() {
+   if [ "$#" -gt 0 ]; then
+       echo "$@"
+   else
+       cat
+   fi | sed 's/^/\t/g'
+}
+rabbit_array() {
+   echo -n '['
+   case "$#" in
+       0) echo -n ' ' ;;
+       1) echo -n " $1 " ;;
+       *)
+           local vals="$(join $',\n' "$@")"
+           echo
+           indent "$vals"
+   esac
+   echo -n ']'
+}
+
+if [ "$1" = 'rabbitmq-server' ] && [ "$haveConfig" ]; then
+   rabbitConfig=(
+       "{ loopback_users, $(rabbit_array) }"
    )

-   haveConfig=
+   rabbitSslOptions=()
+   if [ "$haveSslConfig" ]; then
+       for conf in "${configs[@]}"; do
+           sslConf="${conf#ssl_}"
+           [ "$sslConf" != "$conf" ] || continue
+
+           var="RABBITMQ_${conf^^}"
+           val="${!var}"
+
+           # default values
+           case "$sslConf" in
+               verify) : "${val:=verify_peer}" ;;
+               fail_if_no_peer_cert) : "${val:=true}" ;;
+           esac
+
+           rawVal=
+           case "$sslConf" in
+               verify|fail_if_no_peer_cert) rawVal="$val" ;;
+
+               *)
+                   [ "$val" ] || continue
+                   rawVal='"'"$val"'"'
+                   ;;
+           esac
+           [ "$rawVal" ] || continue
+
+           rabbitSslOptions+=( "{ $sslConf, $rawVal }" )
+       done
+
+       rabbitConfig+=(
+           "{ tcp_listeners, $(rabbit_array) }"
+           "{ ssl_listeners, $(rabbit_array 5671) }"
+           "{ ssl_options, $(rabbit_array "${rabbitSslOptions[@]}") }"
+       )
+   else
+       rabbitConfig+=(
+           "{ tcp_listeners, $(rabbit_array 5672) }"
+           "{ ssl_listeners, $(rabbit_array) }"
+       )
+   fi
+
    for conf in "${configs[@]}"; do
        var="RABBITMQ_${conf^^}"
        val="${!var}"
-       if [ "$val" ]; then
-           haveConfig=1
-           break
-       fi
+
+       rawVal=
+       case "$conf" in
+           # SSL-related options are configured above, so should be ignored here
+           ssl_*) continue ;;
+
+           # convert shell booleans into Erlang booleans
+           hipe_compile)
+               [ "$val" ] && rawVal='true' || rawVal='false'
+               ;;
+
+           # otherwise, assume string-based (and skip or add appropriate decorations)
+           *)
+               [ "$val" ] || continue
+               rawVal='<<"'"$val"'">>'
+               ;;
+       esac
+       [ "$rawVal" ] || continue
+
+       rabbitConfig+=( "{ $conf, $rawVal }" )
    done

-   if [ "$haveConfig" ]; then
-       cat > /etc/rabbitmq/rabbitmq.config <<-'EOH'
-           [
-             {rabbit,
-               [
-       EOH
-       
-       if [ "$ssl" ]; then
-           cat >> /etc/rabbitmq/rabbitmq.config <<-EOS
-                 { tcp_listeners, [ ] },
-                 { ssl_listeners, [ 5671 ] },
-                 { ssl_options,  [
-                   { certfile,   "$RABBITMQ_SSL_CERT_FILE" },
-                   { keyfile,    "$RABBITMQ_SSL_KEY_FILE" },
-                   { cacertfile, "$RABBITMQ_SSL_CA_FILE" },
-                   { verify,   verify_peer },
-                   { fail_if_no_peer_cert, true } ] },
-           EOS
+   # If management plugin is installed, then generate config consider this
+   if [ "$(rabbitmq-plugins list -m -e rabbitmq_management)" ]; then
+       rabbitManagementListenerConfig=()
+       if [ "$haveSslConfig" ]; then
+           rabbitManagementListenerConfig+=(
+               '{ port, 15671 }'
+               '{ ssl, true }'
+               "{ ssl_opts, $(rabbit_array "${rabbitSslOptions[@]}") }"
+           )
        else
-           cat >> /etc/rabbitmq/rabbitmq.config <<-EOS
-                 { tcp_listeners, [ 5672 ] },
-                 { ssl_listeners, [ ] },
-           EOS
+           rabbitManagementListenerConfig+=(
+               '{ port, 15672 }'
+               '{ ssl, false }'
+           )
        fi
-       
-       for conf in "${configs[@]}"; do
-           [ "${conf#ssl_}" = "$conf" ] || continue
-           var="RABBITMQ_${conf^^}"
-           val="${!var}"
-           [ "$val" ] || continue
-           cat >> /etc/rabbitmq/rabbitmq.config <<-EOC
-                 {$conf, <<"$val">>},
-           EOC
-       done
-       cat >> /etc/rabbitmq/rabbitmq.config <<-'EOF'
-                 {loopback_users, []}
-       EOF
-
-       # If management plugin is installed, then generate config consider this
-       if [ "$(rabbitmq-plugins list -m -e rabbitmq_management)" ]; then
-           cat >> /etc/rabbitmq/rabbitmq.config <<-'EOF'
-                   ]
-                 },
-                 { rabbitmq_management, [
-                     { listener, [
-           EOF
-
-           if [ "$ssl" ]; then
-               cat >> /etc/rabbitmq/rabbitmq.config <<-EOS
-                     { port, 15671 },
-                     { ssl, true },
-                     { ssl_opts, [
-                         { certfile,   "$RABBITMQ_SSL_CERT_FILE" },
-                         { keyfile,    "$RABBITMQ_SSL_KEY_FILE" },
-                         { cacertfile, "$RABBITMQ_SSL_CA_FILE" },
-                     { verify,   verify_none },
-                     { fail_if_no_peer_cert, false } ] } ] }
-               EOS
-           else
-               cat >> /etc/rabbitmq/rabbitmq.config <<-EOS
-                       { port, 15672 },
-                       { ssl, false }
-                       ]
-                     }
-               EOS
-           fi
-       fi
-
-       cat >> /etc/rabbitmq/rabbitmq.config <<-'EOF'
-               ]
-             }
-           ].
-       EOF
+       rabbitConfig+=(
+           "{ rabbitmq_management, $(rabbit_array "{ listener, $(rabbit_array "${rabbitManagementListenerConfig[@]}") }") }"
+       )
    fi

-   if [ "$ssl" ]; then
-       # Create combined cert
-       cat "$RABBITMQ_SSL_CERT_FILE" "$RABBITMQ_SSL_KEY_FILE" > /tmp/combined.pem
-       chmod 0400 /tmp/combined.pem
-
-       # More ENV vars for make clustering happiness
-       # we don't handle clustering in this script, but these args should ensure
-       # clustered SSL-enabled members will talk nicely
-       export ERL_SSL_PATH="$(erl -eval 'io:format("~p", [code:lib_dir(ssl, ebin)]),halt().' -noshell)"
-       export RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-pa '$ERL_SSL_PATH' -proto_dist inet_tls -ssl_dist_opt server_certfile /tmp/combined.pem -ssl_dist_opt server_secure_renegotiate true client_secure_renegotiate true"
-       export RABBITMQ_CTL_ERL_ARGS="$RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS"
-   fi
+   echo "$(rabbit_array "{ rabbit, $(rabbit_array "${rabbitConfig[@]}") }")." > /etc/rabbitmq/rabbitmq.config
+fi
+
+combinedSsl='/tmp/combined.pem'
+if [ "$haveSslConfig" ] && [[ "$1" == rabbitmq* ]] && [ ! -f "$combinedSsl" ]; then
+   # Create combined cert
+   cat "$RABBITMQ_SSL_CERTFILE" "$RABBITMQ_SSL_KEYFILE" > "$combinedSsl"
+   chmod 0400 "$combinedSsl"
+fi
+if [ "$haveSslConfig" ] && [ -f "$combinedSsl" ]; then
+   # More ENV vars for make clustering happiness
+   # we don't handle clustering in this script, but these args should ensure
+   # clustered SSL-enabled members will talk nicely
+   export ERL_SSL_PATH="$(erl -eval 'io:format("~p", [code:lib_dir(ssl, ebin)]),halt().' -noshell)"
+   export RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-pa '$ERL_SSL_PATH' -proto_dist inet_tls -ssl_dist_opt server_certfile '$combinedSsl' -ssl_dist_opt server_secure_renegotiate true client_secure_renegotiate true"
+   export RABBITMQ_CTL_ERL_ARGS="$RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS"
 fi

 exec "$@"

@yosifkit
Copy link
Member

yosifkit commented Jul 7, 2016

LGTM, Build test of #1924; 6705780 (java, memcached, percona, php, rabbitmq, drupal, elasticsearch):

$ bashbrew build java:6b38-jdk
Using bashbrew/cache:d54a26e30f26e689f0574345b3e09c79defecf9ae4d6227a63e7da8aa4e1563c (java:6b38-jdk)
Tagging java:6b38-jdk
Tagging java:6b38
Tagging java:6-jdk
Tagging java:6
Tagging java:openjdk-6b38-jdk
Tagging java:openjdk-6b38
Tagging java:openjdk-6-jdk
Tagging java:openjdk-6

$ test/run.sh java:6b38-jdk
testing java:6b38-jdk
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:6b38-jre
Using bashbrew/cache:0211b0f63fb9f52801fa3efdc53908af83936cc621a63cfcb178309e425b3b8d (java:6b38-jre)
Tagging java:6b38-jre
Tagging java:6-jre
Tagging java:openjdk-6b38-jre
Tagging java:openjdk-6-jre

$ test/run.sh java:6b38-jre
testing java:6b38-jre
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:7u101-jdk
Using bashbrew/cache:bebdfba98ee2d012f4e1dbf638bc25883ea1c23bb980ea761b3bf734c7355c52 (java:7u101-jdk)
Tagging java:7u101-jdk
Tagging java:7u101
Tagging java:7-jdk
Tagging java:7
Tagging java:openjdk-7u101-jdk
Tagging java:openjdk-7u101
Tagging java:openjdk-7-jdk
Tagging java:openjdk-7

$ test/run.sh java:7u101-jdk
testing java:7u101-jdk
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:7u91-jdk-alpine
Using bashbrew/cache:984ffb5a4ec41e0c8c37c735d63a202a081228e861f6dc521e719cf27e9eb726 (java:7u91-jdk-alpine)
Tagging java:7u91-jdk-alpine
Tagging java:7u91-alpine
Tagging java:7-jdk-alpine
Tagging java:7-alpine
Tagging java:openjdk-7u91-jdk-alpine
Tagging java:openjdk-7u91-alpine
Tagging java:openjdk-7-jdk-alpine
Tagging java:openjdk-7-alpine

$ test/run.sh java:7u91-jdk-alpine
testing java:7u91-jdk-alpine
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:7u101-jre
Using bashbrew/cache:1087981f2ccea24660170c22cfa73271da63623c45b5dc49a4f1f9213a5dbe5d (java:7u101-jre)
Tagging java:7u101-jre
Tagging java:7-jre
Tagging java:openjdk-7u101-jre
Tagging java:openjdk-7-jre

$ test/run.sh java:7u101-jre
testing java:7u101-jre
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:7u91-jre-alpine
Using bashbrew/cache:26401745a8ac11df4302cae8cb656183d7783a7ac122123eeec45c4733c2116c (java:7u91-jre-alpine)
Tagging java:7u91-jre-alpine
Tagging java:7-jre-alpine
Tagging java:openjdk-7u91-jre-alpine
Tagging java:openjdk-7-jre-alpine

$ test/run.sh java:7u91-jre-alpine
testing java:7u91-jre-alpine
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:8u91-jdk
Using bashbrew/cache:3f7fd7f4ee2f3af905ed536a02718303653d53eeccf6f193334345b87f10ed2f (java:8u91-jdk)
Tagging java:8u91-jdk
Tagging java:8u91
Tagging java:8-jdk
Tagging java:8
Tagging java:jdk
Tagging java:latest
Tagging java:openjdk-8u91-jdk
Tagging java:openjdk-8u91
Tagging java:openjdk-8-jdk
Tagging java:openjdk-8

$ test/run.sh java:8u91-jdk
testing java:8u91-jdk
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:8u92-jdk-alpine
Using bashbrew/cache:f124fe20e734d67aebac2afb4ef4a74ad7697a035fb6404cf53f506369c1ece6 (java:8u92-jdk-alpine)
Tagging java:8u92-jdk-alpine
Tagging java:8u92-alpine
Tagging java:8-jdk-alpine
Tagging java:8-alpine
Tagging java:jdk-alpine
Tagging java:alpine
Tagging java:openjdk-8u92-jdk-alpine
Tagging java:openjdk-8u92-alpine
Tagging java:openjdk-8-jdk-alpine
Tagging java:openjdk-8-alpine

$ test/run.sh java:8u92-jdk-alpine
testing java:8u92-jdk-alpine
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:8u91-jre
Using bashbrew/cache:cd40b480289d2c9d9ca424abac8da4b8c5758db329a347cb90367a19d87ea70f (java:8u91-jre)
Tagging java:8u91-jre
Tagging java:8-jre
Tagging java:jre
Tagging java:openjdk-8u91-jre
Tagging java:openjdk-8-jre

$ test/run.sh java:8u91-jre
testing java:8u91-jre
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:8u92-jre-alpine
Using bashbrew/cache:7728dce11447d7c07e04094162fc502f824cc7a9287be45e80b50c02604c84cd (java:8u92-jre-alpine)
Tagging java:8u92-jre-alpine
Tagging java:8-jre-alpine
Tagging java:jre-alpine
Tagging java:openjdk-8u92-jre-alpine
Tagging java:openjdk-8-jre-alpine

$ test/run.sh java:8u92-jre-alpine
testing java:8u92-jre-alpine
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:9-b124-jdk
Using bashbrew/cache:13bd3187d50ab1ca1a0504c9a3bea0f5e11a1ba71d83edcfa807e22cfc2d167a (java:9-b124-jdk)
Tagging java:9-b124-jdk
Tagging java:9-b124
Tagging java:9-jdk
Tagging java:9
Tagging java:openjdk-9-b124-jdk
Tagging java:openjdk-9-b124
Tagging java:openjdk-9-jdk
Tagging java:openjdk-9

$ test/run.sh java:9-b124-jdk
testing java:9-b124-jdk
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build java:9-b124-jre
Using bashbrew/cache:35be22d4996f89b9f6bfab0f0022a2797570a7b2e7b43e18ddda0ced1a6120bf (java:9-b124-jre)
Tagging java:9-b124-jre
Tagging java:9-jre
Tagging java:openjdk-9-b124-jre
Tagging java:openjdk-9-jre

$ test/run.sh java:9-b124-jre
testing java:9-b124-jre
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed
$ bashbrew build memcached:1.4.28
Using bashbrew/cache:6609df9077b841e69919bed92000236da0694a0baea5bec580486047c3796410 (memcached:1.4.28)
Tagging memcached:1.4.28
Tagging memcached:1.4
Tagging memcached:1
Tagging memcached:latest

$ test/run.sh memcached:1.4.28
testing memcached:1.4.28
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build memcached:1.4.28-alpine
Using bashbrew/cache:43732e3232b57201c81df47490ca1e31256b8134555d218d272cd7a567f74fb3 (memcached:1.4.28-alpine)
Tagging memcached:1.4.28-alpine
Tagging memcached:1.4-alpine
Tagging memcached:1-alpine
Tagging memcached:alpine

$ test/run.sh memcached:1.4.28-alpine
testing memcached:1.4.28-alpine
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed
$ bashbrew build percona:5.7.13
Using bashbrew/cache:01cac780d8178a8e326388dcc4c128637a7eb3122fc751b8ff92b7c2245ba328 (percona:5.7.13)
Tagging percona:5.7.13
Tagging percona:5.7
Tagging percona:5
Tagging percona:latest

$ test/run.sh percona:5.7.13
testing percona:5.7.13
    'utc' [1/7]...passed
    'cve-2014--shellshock' [2/7]...passed
    'no-hard-coded-passwords' [3/7]...passed
    'override-cmd' [4/7]...passed
    'mysql-basics' [5/7].........passed
    'mysql-initdb' [6/7]........passed
    'mysql-log-bin' [7/7]..........passed


$ bashbrew build percona:5.6.30
Using bashbrew/cache:390cca653d56caafdcb8beb99bc1cc53d53033e61019538b73e789f06d564064 (percona:5.6.30)
Tagging percona:5.6.30
Tagging percona:5.6

$ test/run.sh percona:5.6.30
testing percona:5.6.30
    'utc' [1/7]...passed
    'cve-2014--shellshock' [2/7]...passed
    'no-hard-coded-passwords' [3/7]...passed
    'override-cmd' [4/7]...passed
    'mysql-basics' [5/7].......passed
    'mysql-initdb' [6/7].......passed
    'mysql-log-bin' [7/7].......passed


$ bashbrew build percona:5.5.49
Using bashbrew/cache:17b3285cda238f9d43f27a7fd9175b349d073eab7769e7fe94999f2daf5615df (percona:5.5.49)
Tagging percona:5.5.49
Tagging percona:5.5

$ test/run.sh percona:5.5.49
testing percona:5.5.49
    'utc' [1/7]...passed
    'cve-2014--shellshock' [2/7]...passed
    'no-hard-coded-passwords' [3/7]...passed
    'override-cmd' [4/7]...passed
    'mysql-basics' [5/7]......passed
    'mysql-initdb' [6/7]......passed
    'mysql-log-bin' [7/7]......passed
$ bashbrew build php:7.0.8-cli
Using bashbrew/cache:972bebe76f57c7ad1d184d45b7f6f9d851caef9d817e8e0b4ebccc27948416e0 (php:7.0.8-cli)
Tagging php:7.0.8-cli
Tagging php:7.0-cli
Tagging php:7-cli
Tagging php:cli
Tagging php:7.0.8
Tagging php:7.0
Tagging php:7
Tagging php:latest

$ test/run.sh php:7.0.8-cli
testing php:7.0.8-cli
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:7.0.8-alpine
Using bashbrew/cache:db32bef5546643d5607f577cf056960a53ddbfc72013ab81b11e45a5324ae11a (php:7.0.8-alpine)
Tagging php:7.0.8-alpine
Tagging php:7.0-alpine
Tagging php:7-alpine
Tagging php:alpine

$ test/run.sh php:7.0.8-alpine
testing php:7.0.8-alpine
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:7.0.8-apache
Using bashbrew/cache:3bb2653c1bccc14a694a2122ffd4f31ff7e3865aa01ca72780e7f3b48525b34b (php:7.0.8-apache)
Tagging php:7.0.8-apache
Tagging php:7.0-apache
Tagging php:7-apache
Tagging php:apache

$ test/run.sh php:7.0.8-apache
testing php:7.0.8-apache
    'utc' [1/7]...passed
    'cve-2014--shellshock' [2/7]...passed
    'no-hard-coded-passwords' [3/7]...passed
    'override-cmd' [4/7]...passed
    'php-ext-install' [5/7]...passed
    'php-hello-world' [6/7]...passed
    'php-apache-hello-web' [7/7]...passed


$ bashbrew build php:7.0.8-fpm
Using bashbrew/cache:44e606cd57ad415cc46343a99cd35aa7bc7abb3252605d56d3df13ff3d351760 (php:7.0.8-fpm)
Tagging php:7.0.8-fpm
Tagging php:7.0-fpm
Tagging php:7-fpm
Tagging php:fpm

$ test/run.sh php:7.0.8-fpm
testing php:7.0.8-fpm
    'utc' [1/7]...passed
    'cve-2014--shellshock' [2/7]...passed
    'no-hard-coded-passwords' [3/7]...passed
    'override-cmd' [4/7]...passed
    'php-ext-install' [5/7]...passed
    'php-hello-world' [6/7]...passed
    'php-fpm-hello-web' [7/7]...passed


$ bashbrew build php:7.0.8-fpm-alpine
Using bashbrew/cache:536d6921d69f049f80a3ad2135605db721a849606345634aac1ed9f0093e7718 (php:7.0.8-fpm-alpine)
Tagging php:7.0.8-fpm-alpine
Tagging php:7.0-fpm-alpine
Tagging php:7-fpm-alpine
Tagging php:fpm-alpine

$ test/run.sh php:7.0.8-fpm-alpine
testing php:7.0.8-fpm-alpine
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:7.0.8-zts
Using bashbrew/cache:9b88ca22d9b5468f66486c51edfa7d8e8109dfdc42409e311c6173ba387465e0 (php:7.0.8-zts)
Tagging php:7.0.8-zts
Tagging php:7.0-zts
Tagging php:7-zts
Tagging php:zts

$ test/run.sh php:7.0.8-zts
testing php:7.0.8-zts
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:7.0.8-zts-alpine
Using bashbrew/cache:01be5cea83001a3ccecb5769258ed496358e14132d02473779f2fbfd39fb403a (php:7.0.8-zts-alpine)
Tagging php:7.0.8-zts-alpine
Tagging php:7.0-zts-alpine
Tagging php:7-zts-alpine
Tagging php:zts-alpine

$ test/run.sh php:7.0.8-zts-alpine
testing php:7.0.8-zts-alpine
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:5.6.23-cli
Using bashbrew/cache:10645d37423296e80c9202c54d5cf64d7972c99022b01359487ec89653f2c3cb (php:5.6.23-cli)
Tagging php:5.6.23-cli
Tagging php:5.6-cli
Tagging php:5-cli
Tagging php:5.6.23
Tagging php:5.6
Tagging php:5

$ test/run.sh php:5.6.23-cli
testing php:5.6.23-cli
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:5.6.23-alpine
Using bashbrew/cache:7b9c14943c79f873ff93c4192e0d23eda0cf258758b77e208091dda2c688d487 (php:5.6.23-alpine)
Tagging php:5.6.23-alpine
Tagging php:5.6-alpine
Tagging php:5-alpine

$ test/run.sh php:5.6.23-alpine
testing php:5.6.23-alpine
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:5.6.23-apache
Using bashbrew/cache:f1ad9e000d12682b969486bead3a745079669a72684d8f1e40e05b06339a109f (php:5.6.23-apache)
Tagging php:5.6.23-apache
Tagging php:5.6-apache
Tagging php:5-apache

$ test/run.sh php:5.6.23-apache
testing php:5.6.23-apache
    'utc' [1/7]...passed
    'cve-2014--shellshock' [2/7]...passed
    'no-hard-coded-passwords' [3/7]...passed
    'override-cmd' [4/7]...passed
    'php-ext-install' [5/7]...passed
    'php-hello-world' [6/7]...passed
    'php-apache-hello-web' [7/7]...passed


$ bashbrew build php:5.6.23-fpm
Using bashbrew/cache:2e62d93dff57f5ffff618bc6a923e4c5cd9de21185ad941d7faf3ea0762c4f62 (php:5.6.23-fpm)
Tagging php:5.6.23-fpm
Tagging php:5.6-fpm
Tagging php:5-fpm

$ test/run.sh php:5.6.23-fpm
testing php:5.6.23-fpm
    'utc' [1/7]...passed
    'cve-2014--shellshock' [2/7]...passed
    'no-hard-coded-passwords' [3/7]...passed
    'override-cmd' [4/7]...passed
    'php-ext-install' [5/7]...passed
    'php-hello-world' [6/7]...passed
    'php-fpm-hello-web' [7/7]...passed


$ bashbrew build php:5.6.23-fpm-alpine
Using bashbrew/cache:7631852677bf11009d8eae106cfaee2166202e407ab7c773e11cad309dc82ec4 (php:5.6.23-fpm-alpine)
Tagging php:5.6.23-fpm-alpine
Tagging php:5.6-fpm-alpine
Tagging php:5-fpm-alpine

$ test/run.sh php:5.6.23-fpm-alpine
testing php:5.6.23-fpm-alpine
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:5.6.23-zts
Using bashbrew/cache:173baffe458996c94439e6580154169b115202aa14cb5fb7fbcfc486d6ba2dfd (php:5.6.23-zts)
Tagging php:5.6.23-zts
Tagging php:5.6-zts
Tagging php:5-zts

$ test/run.sh php:5.6.23-zts
testing php:5.6.23-zts
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:5.6.23-zts-alpine
Using bashbrew/cache:a258cc7bee2e09f33053bbfd24359742c4853cdcc75acdaa030161bbe5a7b5cf (php:5.6.23-zts-alpine)
Tagging php:5.6.23-zts-alpine
Tagging php:5.6-zts-alpine
Tagging php:5-zts-alpine

$ test/run.sh php:5.6.23-zts-alpine
testing php:5.6.23-zts-alpine
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:5.5.37-cli
Using bashbrew/cache:68ae1697937d642402238b85e9c8e38b370f2d64082d255b2f8e9d882abfead7 (php:5.5.37-cli)
Tagging php:5.5.37-cli
Tagging php:5.5-cli
Tagging php:5.5.37
Tagging php:5.5

$ test/run.sh php:5.5.37-cli
testing php:5.5.37-cli
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:5.5.37-alpine
Using bashbrew/cache:6fc4028028105f5aaec22fc7aafc29ecfba2d46828157bfb90ff9439f68724be (php:5.5.37-alpine)
Tagging php:5.5.37-alpine
Tagging php:5.5-alpine

$ test/run.sh php:5.5.37-alpine
testing php:5.5.37-alpine
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:5.5.37-apache
Using bashbrew/cache:de994f4169c167780218047476d8c433813d525ae460cde9c239159bbf7bc1f9 (php:5.5.37-apache)
Tagging php:5.5.37-apache
Tagging php:5.5-apache

$ test/run.sh php:5.5.37-apache
testing php:5.5.37-apache
    'utc' [1/7]...passed
    'cve-2014--shellshock' [2/7]...passed
    'no-hard-coded-passwords' [3/7]...passed
    'override-cmd' [4/7]...passed
    'php-ext-install' [5/7]...passed
    'php-hello-world' [6/7]...passed
    'php-apache-hello-web' [7/7]...passed


$ bashbrew build php:5.5.37-fpm
Using bashbrew/cache:bce0d59fe4eb4cebe31ba1fb446d501e71440dddaef0dac6459214307cdc8c65 (php:5.5.37-fpm)
Tagging php:5.5.37-fpm
Tagging php:5.5-fpm

$ test/run.sh php:5.5.37-fpm
testing php:5.5.37-fpm
    'utc' [1/7]...passed
    'cve-2014--shellshock' [2/7]...passed
    'no-hard-coded-passwords' [3/7]...passed
    'override-cmd' [4/7]...passed
    'php-ext-install' [5/7]...passed
    'php-hello-world' [6/7]...passed
    'php-fpm-hello-web' [7/7]...passed


$ bashbrew build php:5.5.37-fpm-alpine
Using bashbrew/cache:775675f2ec5878da8c3a5821febb137492dcc62619ec043b214922885480e46e (php:5.5.37-fpm-alpine)
Tagging php:5.5.37-fpm-alpine
Tagging php:5.5-fpm-alpine

$ test/run.sh php:5.5.37-fpm-alpine
testing php:5.5.37-fpm-alpine
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:5.5.37-zts
Using bashbrew/cache:cd88c47524f2c7c9d64dda9adde9e6b8a0765f64b9536dae5756c6699544112b (php:5.5.37-zts)
Tagging php:5.5.37-zts
Tagging php:5.5-zts

$ test/run.sh php:5.5.37-zts
testing php:5.5.37-zts
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed


$ bashbrew build php:5.5.37-zts-alpine
Using bashbrew/cache:233a7a7f40690eadad3fb9ea3f98793aa2dda99cf9b8b8607819c8180addaec0 (php:5.5.37-zts-alpine)
Tagging php:5.5.37-zts-alpine
Tagging php:5.5-zts-alpine

$ test/run.sh php:5.5.37-zts-alpine
testing php:5.5.37-zts-alpine
    'utc' [1/6]...passed
    'cve-2014--shellshock' [2/6]...passed
    'no-hard-coded-passwords' [3/6]...passed
    'override-cmd' [4/6]...passed
    'php-ext-install' [5/6]...passed
    'php-hello-world' [6/6]...passed
$ bashbrew build rabbitmq:3.6.3
Using bashbrew/cache:e63dbb17ff66f37e3d9a803985e47a43d15f1208f17ea7caab2e947a1b04eba1 (rabbitmq:3.6.3)
Tagging rabbitmq:3.6.3
Tagging rabbitmq:3.6
Tagging rabbitmq:3
Tagging rabbitmq:latest

$ test/run.sh rabbitmq:3.6.3
testing rabbitmq:3.6.3
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build rabbitmq:3.6.3-management
Using bashbrew/cache:4d0ffac2a2a1f0aeb4b278882923e0c373b331135ab4a5622d3671cbb346a919 (rabbitmq:3.6.3-management)
Tagging rabbitmq:3.6.3-management
Tagging rabbitmq:3.6-management
Tagging rabbitmq:3-management
Tagging rabbitmq:management

$ test/run.sh rabbitmq:3.6.3-management
testing rabbitmq:3.6.3-management
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed
$ bashbrew build drupal:7.44-apache
Using bashbrew/cache:dce0ad52204308318e85c5fd9dd405d64b204ee0b4951186a16f5f2152f1fcc9 (drupal:7.44-apache)
Tagging drupal:7.44-apache
Tagging drupal:7-apache
Tagging drupal:7.44
Tagging drupal:7

$ test/run.sh drupal:7.44-apache
testing drupal:7.44-apache
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build drupal:7.44-fpm
Using bashbrew/cache:d5e8a51cc05038c1a8524611decab8759411e29e609633fa82819e606c6c7d66 (drupal:7.44-fpm)
Tagging drupal:7.44-fpm
Tagging drupal:7-fpm

$ test/run.sh drupal:7.44-fpm
testing drupal:7.44-fpm
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build drupal:8.1.4-apache
Using bashbrew/cache:49060d59cb23b0afe220e54085a4bec6c15c67d9847b6caa82f27a14bf1fd2e3 (drupal:8.1.4-apache)
Tagging drupal:8.1.4-apache
Tagging drupal:8.1-apache
Tagging drupal:8-apache
Tagging drupal:apache
Tagging drupal:8.1.4
Tagging drupal:8.1
Tagging drupal:8
Tagging drupal:latest

$ test/run.sh drupal:8.1.4-apache
testing drupal:8.1.4-apache
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed


$ bashbrew build drupal:8.1.4-fpm
Building bashbrew/cache:50d12cc20219645096f069573cfba56d0dc6a1a89e35909c920a4b82d749e123 (drupal:8.1.4-fpm)
Tagging drupal:8.1.4-fpm
Tagging drupal:8.1-fpm
Tagging drupal:8-fpm
Tagging drupal:fpm

$ test/run.sh drupal:8.1.4-fpm
testing drupal:8.1.4-fpm
    'utc' [1/4]...passed
    'cve-2014--shellshock' [2/4]...passed
    'no-hard-coded-passwords' [3/4]...passed
    'override-cmd' [4/4]...passed
$ bashbrew build elasticsearch:1.5.2
Using bashbrew/cache:4f08912626d87b25740ce32d402961f12e52c5784f4ccd90700b0187c459a796 (elasticsearch:1.5.2)
Tagging elasticsearch:1.5.2
Tagging elasticsearch:1.5

$ test/run.sh elasticsearch:1.5.2
testing elasticsearch:1.5.2
    'utc' [1/5]...passed
    'cve-2014--shellshock' [2/5]...passed
    'no-hard-coded-passwords' [3/5]...passed
    'override-cmd' [4/5]...passed
    'elasticsearch-basics' [5/5].....passed


$ bashbrew build elasticsearch:1.6.2
Using bashbrew/cache:6b41942cfc7cbe7789c5188715954f5343402a4dd3cabd923f26593c44c30b4e (elasticsearch:1.6.2)
Tagging elasticsearch:1.6.2
Tagging elasticsearch:1.6

$ test/run.sh elasticsearch:1.6.2
testing elasticsearch:1.6.2
    'utc' [1/5]...passed
    'cve-2014--shellshock' [2/5]...passed
    'no-hard-coded-passwords' [3/5]...passed
    'override-cmd' [4/5]...passed
    'elasticsearch-basics' [5/5]......passed


$ bashbrew build elasticsearch:1.7.5
Using bashbrew/cache:7a5c996269e79254f6af70dc2bd289f9d8c331b1bbbf664d78f5f67070dd450b (elasticsearch:1.7.5)
Tagging elasticsearch:1.7.5
Tagging elasticsearch:1.7
Tagging elasticsearch:1

$ test/run.sh elasticsearch:1.7.5
testing elasticsearch:1.7.5
    'utc' [1/5]...passed
    'cve-2014--shellshock' [2/5]...passed
    'no-hard-coded-passwords' [3/5]...passed
    'override-cmd' [4/5]...passed
    'elasticsearch-basics' [5/5]......passed


$ bashbrew build elasticsearch:2.0.2
Using bashbrew/cache:9ad11974b6ac46c397f1a1facdcf3262319357a4dfe128c2aed12ee0ca2be7a6 (elasticsearch:2.0.2)
Tagging elasticsearch:2.0.2
Tagging elasticsearch:2.0

$ test/run.sh elasticsearch:2.0.2
testing elasticsearch:2.0.2
    'utc' [1/5]...passed
    'cve-2014--shellshock' [2/5]...passed
    'no-hard-coded-passwords' [3/5]...passed
    'override-cmd' [4/5]...passed
    'elasticsearch-basics' [5/5].....passed


$ bashbrew build elasticsearch:2.1.2
Using bashbrew/cache:581edfb770bbc0470e37b9de18dd1b0d51a4d9e22b02dc6ec374b08635465773 (elasticsearch:2.1.2)
Tagging elasticsearch:2.1.2
Tagging elasticsearch:2.1

$ test/run.sh elasticsearch:2.1.2
testing elasticsearch:2.1.2
    'utc' [1/5]...passed
    'cve-2014--shellshock' [2/5]...passed
    'no-hard-coded-passwords' [3/5]...passed
    'override-cmd' [4/5]...passed
    'elasticsearch-basics' [5/5].....passed


$ bashbrew build elasticsearch:2.2.2
Using bashbrew/cache:31a7dfed6f96ccf9f9d6e32c95292605b64e722221a0057ef5125ab49eaaae18 (elasticsearch:2.2.2)
Tagging elasticsearch:2.2.2
Tagging elasticsearch:2.2

$ test/run.sh elasticsearch:2.2.2
testing elasticsearch:2.2.2
    'utc' [1/5]...passed
    'cve-2014--shellshock' [2/5]...passed
    'no-hard-coded-passwords' [3/5]...passed
    'override-cmd' [4/5]...passed
    'elasticsearch-basics' [5/5].....passed


$ bashbrew build elasticsearch:2.3.3
Using bashbrew/cache:467116b48672b4d6954417343a9b9464543d7de074f4188b0fd9cfc589853286 (elasticsearch:2.3.3)
Tagging elasticsearch:2.3.3
Tagging elasticsearch:2.3
Tagging elasticsearch:2
Tagging elasticsearch:latest

$ test/run.sh elasticsearch:2.3.3
testing elasticsearch:2.3.3
    'utc' [1/5]...passed
    'cve-2014--shellshock' [2/5]...passed
    'no-hard-coded-passwords' [3/5]...passed
    'override-cmd' [4/5]...passed
    'elasticsearch-basics' [5/5].....passed


$ bashbrew build elasticsearch:5.0.0-alpha4
Using bashbrew/cache:5e1304cf9ecbbd310fee5afacb273d557e22a38c73c977bf8dd4d0369295f2fe (elasticsearch:5.0.0-alpha4)
Tagging elasticsearch:5.0.0-alpha4
Tagging elasticsearch:5.0.0
Tagging elasticsearch:5.0
Tagging elasticsearch:5

$ test/run.sh elasticsearch:5.0.0-alpha4
testing elasticsearch:5.0.0-alpha4
    'utc' [1/5]...passed
    'cve-2014--shellshock' [2/5]...passed
    'no-hard-coded-passwords' [3/5]...passed
    'override-cmd' [4/5]...passed
    'elasticsearch-basics' [5/5]....docker: Error response from daemon: Cannot link to a non running container: /stoic_goldstine AS /adoring_golick/es.
failed

The following images failed at least one test: elasticsearch:5.0.0-alpha4

@yosifkit yosifkit merged commit 1dccddf into docker-library:master Jul 7, 2016
@yosifkit yosifkit deleted the update-docker-library branch July 7, 2016 19:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants