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 #2838

Merged
merged 1 commit into from
Apr 7, 2017

Conversation

- `drupal`: 8.3.0 (docker-library/drupal#78), remove 8.2 (docker-library/drupal#80)
- `ghost`: add `alpine` variant (docker-library/ghost#55)
- `mongo`: more edge cases (docker-library/mongo#167, docker-library/mongo#169)
- `postgres`: adjust append (docker-library/postgres#270)
- `rabbitmq`: add `vm_memory_high_watermark` support based on cgroup limits (docker-library/rabbitmq#105)
- `rocket.chat`: 0.55.0-rc.1
- `wordpress`: add `wp-cli` variant (docker-library/wordpress#198)
@tianon
Copy link
Member Author

tianon commented Apr 7, 2017

diff --git a/_bashbrew-list b/_bashbrew-list
index 3636112..6475fb7 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -10,33 +10,25 @@ drupal:8
 drupal:8-apache
 drupal:8-fpm
 drupal:8-fpm-alpine
-drupal:8.2
-drupal:8.2-apache
-drupal:8.2-fpm
-drupal:8.2-fpm-alpine
-drupal:8.2.7
-drupal:8.2.7-apache
-drupal:8.2.7-fpm
-drupal:8.2.7-fpm-alpine
-drupal:8.3-rc
-drupal:8.3-rc-apache
-drupal:8.3-rc-fpm
-drupal:8.3-rc-fpm-alpine
-drupal:8.3.0-rc2
-drupal:8.3.0-rc2-apache
-drupal:8.3.0-rc2-fpm
-drupal:8.3.0-rc2-fpm-alpine
+drupal:8.3
+drupal:8.3-apache
+drupal:8.3-fpm
+drupal:8.3-fpm-alpine
+drupal:8.3.0
+drupal:8.3.0-apache
+drupal:8.3.0-fpm
+drupal:8.3.0-fpm-alpine
 drupal:apache
 drupal:fpm
 drupal:fpm-alpine
 drupal:latest
-drupal:rc
-drupal:rc-apache
-drupal:rc-fpm
-drupal:rc-fpm-alpine
 ghost:0
+ghost:0-alpine
 ghost:0.11
+ghost:0.11-alpine
 ghost:0.11.7
+ghost:0.11.7-alpine
+ghost:alpine
 ghost:latest
 mongo:3
 mongo:3-windowsservercore
@@ -100,9 +92,9 @@ rabbitmq:alpine
 rabbitmq:latest
 rabbitmq:management
 rabbitmq:management-alpine
-rocket.chat:0
-rocket.chat:0.54
-rocket.chat:0.54.2
+rocket.chat:0.55
+rocket.chat:0.55.0-rc
+rocket.chat:0.55.0-rc.1
 rocket.chat:latest
 wordpress:4
 wordpress:4-apache
@@ -153,6 +145,22 @@ wordpress:4.7.3-php7.1-apache
 wordpress:4.7.3-php7.1-fpm
 wordpress:4.7.3-php7.1-fpm-alpine
 wordpress:apache
+wordpress:cli
+wordpress:cli-1
+wordpress:cli-1-php5.6
+wordpress:cli-1-php7.0
+wordpress:cli-1-php7.1
+wordpress:cli-1.1
+wordpress:cli-1.1-php5.6
+wordpress:cli-1.1-php7.0
+wordpress:cli-1.1-php7.1
+wordpress:cli-1.1.0
+wordpress:cli-1.1.0-php5.6
+wordpress:cli-1.1.0-php7.0
+wordpress:cli-1.1.0-php7.1
+wordpress:cli-php5.6
+wordpress:cli-php7.0
+wordpress:cli-php7.1
 wordpress:fpm
 wordpress:fpm-alpine
 wordpress:latest
diff --git a/drupal_fpm-alpine/Dockerfile b/drupal_fpm-alpine/Dockerfile
index f0201a3..af797f4 100644
--- a/drupal_fpm-alpine/Dockerfile
+++ b/drupal_fpm-alpine/Dockerfile
@@ -1,5 +1,5 @@
 # from https://www.drupal.org/requirements/php#drupalversions
-FROM php:7.0-fpm-alpine
+FROM php:7.1-fpm-alpine
 
 # install the PHP extensions we need
 # postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642
@@ -40,8 +40,8 @@ RUN { \
 WORKDIR /var/www/html
 
 # https://www.drupal.org/node/3060/release
-ENV DRUPAL_VERSION 8.2.7
-ENV DRUPAL_MD5 10b1669f750a9996096e76059c157b9a
+ENV DRUPAL_VERSION 8.3.0
+ENV DRUPAL_MD5 1dcce599eddba07eb00e8879937525c3
 
 RUN curl -fSL "https://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_fpm/Dockerfile b/drupal_fpm/Dockerfile
index 3dbc31b..5abe155 100644
--- a/drupal_fpm/Dockerfile
+++ b/drupal_fpm/Dockerfile
@@ -1,5 +1,5 @@
 # from https://www.drupal.org/requirements/php#drupalversions
-FROM php:7.0-fpm
+FROM php:7.1-fpm
 
 # install the PHP extensions we need
 RUN set -ex \
@@ -34,8 +34,8 @@ RUN { \
 WORKDIR /var/www/html
 
 # https://www.drupal.org/node/3060/release
-ENV DRUPAL_VERSION 8.2.7
-ENV DRUPAL_MD5 10b1669f750a9996096e76059c157b9a
+ENV DRUPAL_VERSION 8.3.0
+ENV DRUPAL_MD5 1dcce599eddba07eb00e8879937525c3
 
 RUN curl -fSL "https://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 94ddc41..6149119 100644
--- a/drupal_latest/Dockerfile
+++ b/drupal_latest/Dockerfile
@@ -1,5 +1,5 @@
 # from https://www.drupal.org/requirements/php#drupalversions
-FROM php:7.0-apache
+FROM php:7.1-apache
 
 RUN a2enmod rewrite
 
@@ -36,8 +36,8 @@ RUN { \
 WORKDIR /var/www/html
 
 # https://www.drupal.org/node/3060/release
-ENV DRUPAL_VERSION 8.2.7
-ENV DRUPAL_MD5 10b1669f750a9996096e76059c157b9a
+ENV DRUPAL_VERSION 8.3.0
+ENV DRUPAL_MD5 1dcce599eddba07eb00e8879937525c3
 
 RUN curl -fSL "https://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_rc-fpm/Dockerfile b/drupal_rc-fpm/Dockerfile
deleted file mode 100644
index 3ec8653..0000000
diff --git a/drupal_rc/Dockerfile b/drupal_rc/Dockerfile
deleted file mode 100644
index 119b611..0000000
diff --git a/ghost_latest/Dockerfile b/ghost_alpine/Dockerfile
similarity index 28%
copy from ghost_latest/Dockerfile
copy to ghost_alpine/Dockerfile
index 2186362..6583678 100644
--- a/ghost_latest/Dockerfile
+++ b/ghost_alpine/Dockerfile
@@ -1,53 +1,54 @@
 # http://support.ghost.org/supported-node-versions/
 # https://github.com/nodejs/LTS
-FROM node:4-slim
-
-RUN groupadd user && useradd --create-home --home-dir /home/user -g user user
-
-# grab gosu for easy step-down from root
-ENV GOSU_VERSION 1.7
-RUN set -x \
-	&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \
-	&& wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).asc" \
-	&& export GNUPGHOME="$(mktemp -d)" \
-	&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
-	&& gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \
-	&& rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc \
-	&& chmod +x /usr/local/bin/gosu \
-	&& gosu nobody true
+FROM node:4-alpine
+
+# grab su-exec for easy step-down from root
+RUN apk add --no-cache 'su-exec>=0.2'
+
+RUN apk add --no-cache \
+# add "bash" for "[["
+		bash \
+# add "tar" for "--one-file-system"
+		tar
 
 ENV GHOST_SOURCE /usr/src/ghost
 WORKDIR $GHOST_SOURCE
 
 ENV GHOST_VERSION 0.11.7
 
-RUN buildDeps=' \
+RUN set -ex; \
+	\
+	apk add --no-cache --virtual .build-deps \
+		ca-certificates \
 		gcc \
 		make \
+		openssl \
 		python \
 		unzip \
-	' \
-	&& set -x \
-	&& apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \
-	&& wget -O ghost.zip "https://github.com/TryGhost/Ghost/releases/download/${GHOST_VERSION}/Ghost-${GHOST_VERSION}.zip" \
-	&& unzip ghost.zip \
-	&& npm install --production \
-	&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false -o APT::AutoRemove::SuggestsImportant=false $buildDeps \
-	&& rm ghost.zip \
-	&& npm cache clean \
-	&& rm -rf /tmp/npm*
+	; \
+	\
+	wget -O ghost.zip "https://github.com/TryGhost/Ghost/releases/download/${GHOST_VERSION}/Ghost-${GHOST_VERSION}.zip"; \
+	unzip ghost.zip; \
+	\
+	npm install --production; \
+	\
+	apk del .build-deps; \
+	\
+	rm ghost.zip; \
+	npm cache clean; \
+	rm -rf /tmp/npm*
 
 ENV GHOST_CONTENT /var/lib/ghost
 RUN mkdir -p "$GHOST_CONTENT" \
-	&& chown -R user:user "$GHOST_CONTENT" \
+	&& chown -R node:node "$GHOST_CONTENT" \
 # Ghost expects "config.js" to be in $GHOST_SOURCE, but it's more useful for
 # image users to manage that as part of their $GHOST_CONTENT volume, so we
 # symlink.
 	&& ln -s "$GHOST_CONTENT/config.js" "$GHOST_SOURCE/config.js"
 VOLUME $GHOST_CONTENT
 
-COPY docker-entrypoint.sh /entrypoint.sh
-ENTRYPOINT ["/entrypoint.sh"]
+COPY docker-entrypoint.sh /usr/local/bin/
+ENTRYPOINT ["docker-entrypoint.sh"]
 
 EXPOSE 2368
 CMD ["npm", "start"]
diff --git a/ghost_latest/docker-entrypoint.sh b/ghost_alpine/docker-entrypoint.sh
similarity index 90%
copy from ghost_latest/docker-entrypoint.sh
copy to ghost_alpine/docker-entrypoint.sh
index 18f120b..622f014 100755
--- a/ghost_latest/docker-entrypoint.sh
+++ b/ghost_alpine/docker-entrypoint.sh
@@ -3,8 +3,8 @@ set -e
 
 # allow the container to be started with `--user`
 if [[ "$*" == npm*start* ]] && [ "$(id -u)" = '0' ]; then
-	chown -R user "$GHOST_CONTENT"
-	exec gosu user "$BASH_SOURCE" "$@"
+	chown -R node "$GHOST_CONTENT"
+	exec su-exec node "$BASH_SOURCE" "$@"
 fi
 
 if [[ "$*" == npm*start* ]]; then
diff --git a/ghost_latest/Dockerfile b/ghost_latest/Dockerfile
index 2186362..eaf2ca8 100644
--- a/ghost_latest/Dockerfile
+++ b/ghost_latest/Dockerfile
@@ -21,21 +21,28 @@ WORKDIR $GHOST_SOURCE
 
 ENV GHOST_VERSION 0.11.7
 
-RUN buildDeps=' \
+RUN set -ex; \
+	\
+	buildDeps=' \
 		gcc \
 		make \
 		python \
 		unzip \
-	' \
-	&& set -x \
-	&& apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \
-	&& wget -O ghost.zip "https://github.com/TryGhost/Ghost/releases/download/${GHOST_VERSION}/Ghost-${GHOST_VERSION}.zip" \
-	&& unzip ghost.zip \
-	&& npm install --production \
-	&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false -o APT::AutoRemove::SuggestsImportant=false $buildDeps \
-	&& rm ghost.zip \
-	&& npm cache clean \
-	&& rm -rf /tmp/npm*
+	'; \
+	apt-get update; \
+	apt-get install -y $buildDeps --no-install-recommends; \
+	rm -rf /var/lib/apt/lists/*; \
+	\
+	wget -O ghost.zip "https://github.com/TryGhost/Ghost/releases/download/${GHOST_VERSION}/Ghost-${GHOST_VERSION}.zip"; \
+	unzip ghost.zip; \
+	\
+	npm install --production; \
+	\
+	apt-get purge -y --auto-remove $buildDeps; \
+	\
+	rm ghost.zip; \
+	npm cache clean; \
+	rm -rf /tmp/npm*
 
 ENV GHOST_CONTENT /var/lib/ghost
 RUN mkdir -p "$GHOST_CONTENT" \
@@ -46,8 +53,9 @@ RUN mkdir -p "$GHOST_CONTENT" \
 	&& ln -s "$GHOST_CONTENT/config.js" "$GHOST_SOURCE/config.js"
 VOLUME $GHOST_CONTENT
 
-COPY docker-entrypoint.sh /entrypoint.sh
-ENTRYPOINT ["/entrypoint.sh"]
+COPY docker-entrypoint.sh /usr/local/bin/
+RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat
+ENTRYPOINT ["docker-entrypoint.sh"]
 
 EXPOSE 2368
 CMD ["npm", "start"]
diff --git a/mongo_3.0/docker-entrypoint.sh b/mongo_3.0/docker-entrypoint.sh
index 81e3af7..9f19336 100755
--- a/mongo_3.0/docker-entrypoint.sh
+++ b/mongo_3.0/docker-entrypoint.sh
@@ -53,22 +53,59 @@ file_env() {
 	unset "$fileVar"
 }
 
+# see https://github.com/docker-library/mongo/issues/147 (mongod is picky about duplicated arguments)
+_mongod_hack_have_arg() {
+	local checkArg="$1"; shift
+	for arg; do
+		case "$arg" in
+			"$checkArg"|"$checkArg"=*)
+				return 0
+				;;
+		esac
+	done
+	return 1
+}
+declare -a mongodHackedArgs
+# _mongod_hack_ensure_arg '--some-arg' "$@"
+# set -- "${mongodHackedArgs[@]}"
+_mongod_hack_ensure_arg() {
+	local ensureArg="$1"; shift
+	mongodHackedArgs=( "$@" )
+	if ! _mongod_hack_have_arg "$ensureArg" "$@"; then
+		mongodHackedArgs+=( "$ensureArg" )
+	fi
+}
+# _mongod_hack_ensure_arg_val '--some-arg' 'some-val' "$@"
+# set -- "${mongodHackedArgs[@]}"
+_mongod_hack_ensure_arg_val() {
+	local ensureArg="$1"; shift
+	local ensureVal="$1"; shift
+	mongodHackedArgs=()
+	while [ "$#" -gt 0 ]; do
+		arg="$1"; shift
+		case "$arg" in
+			"$ensureArg")
+				shift # also skip the value
+				continue
+				;;
+			"$ensureArg"=*)
+				# value is already included
+				continue
+				;;
+		esac
+		mongodHackedArgs+=( "$arg" )
+	done
+	mongodHackedArgs+=( "$ensureArg" "$ensureVal" )
+}
+# TODO what do to about "--config" ? :(
+
 if [ "$originalArgOne" = 'mongod' ]; then
 	file_env 'MONGO_INITDB_ROOT_USERNAME'
 	file_env 'MONGO_INITDB_ROOT_PASSWORD'
 	if [ "$MONGO_INITDB_ROOT_USERNAME" ] && [ "$MONGO_INITDB_ROOT_PASSWORD" ]; then
-		# if we have a username/password, let's set "--auth" (but only if it isn't included already, because mongod is very picky)
-		# see https://github.com/docker-library/mongo/issues/147
-		haveAuth=
-		for arg; do
-			if [ "$arg" = '--auth' ]; then
-				haveAuth=1
-				break
-			fi
-		done
-		if [ -z "$haveAuth" ]; then
-			set -- "$@" --auth
-		fi
+		# if we have a username/password, let's set "--auth"
+		_mongod_hack_ensure_arg '--auth' "$@"
+		set -- "${mongodHackedArgs[@]}"
 	fi
 
 	# check for a few known paths (to determine whether we've already initialized and should thus skip our initdb scripts)
@@ -86,11 +123,24 @@ if [ "$originalArgOne" = 'mongod' ]; then
 	done
 
 	if [ -z "$definitelyAlreadyInitialized" ]; then
+		if _mongod_hack_have_arg --config "$@"; then
+			echo >&2
+			echo >&2 'warning: database is not yet initialized, and "--config" is specified'
+			echo >&2 '  the initdb database startup might fail as a result!'
+			echo >&2
+		fi
+
 		pidfile="$(mktemp)"
 		trap "rm -f '$pidfile'" EXIT
-		"$@" --bind_ip 127.0.0.1 --logpath "/proc/$$/fd/1" --pidfilepath "$pidfile" --fork
-
-		mongo=( mongo --quiet )
+		_mongod_hack_ensure_arg_val --bind_ip 127.0.0.1 "$@"
+		_mongod_hack_ensure_arg_val --port 27017 "${mongodHackedArgs[@]}"
+		sslMode="$(_mongod_hack_have_arg '--sslPEMKeyFile' "$@" && echo 'allowSSL' || echo 'disabled')" # "BadValue: need sslPEMKeyFile when SSL is enabled" vs "BadValue: need to enable SSL via the sslMode flag when using SSL configuration parameters"
+		_mongod_hack_ensure_arg_val --sslMode "$sslMode" "${mongodHackedArgs[@]}"
+		_mongod_hack_ensure_arg_val --logpath "/proc/$$/fd/1" "${mongodHackedArgs[@]}"
+		_mongod_hack_ensure_arg_val --pidfilepath "$pidfile" "${mongodHackedArgs[@]}"
+		"${mongodHackedArgs[@]}" --fork
+
+		mongo=( mongo --host 127.0.0.1 --port 27017 --quiet )
 
 		# check to see that our "mongod" actually did start up (catches "--help", "--version", MongoDB 3.2 being silly, slow prealloc, etc)
 		# https://jira.mongodb.org/browse/SERVER-16292
diff --git a/mongo_3.2/docker-entrypoint.sh b/mongo_3.2/docker-entrypoint.sh
index 81e3af7..9f19336 100755
--- a/mongo_3.2/docker-entrypoint.sh
+++ b/mongo_3.2/docker-entrypoint.sh
@@ -53,22 +53,59 @@ file_env() {
 	unset "$fileVar"
 }
 
+# see https://github.com/docker-library/mongo/issues/147 (mongod is picky about duplicated arguments)
+_mongod_hack_have_arg() {
+	local checkArg="$1"; shift
+	for arg; do
+		case "$arg" in
+			"$checkArg"|"$checkArg"=*)
+				return 0
+				;;
+		esac
+	done
+	return 1
+}
+declare -a mongodHackedArgs
+# _mongod_hack_ensure_arg '--some-arg' "$@"
+# set -- "${mongodHackedArgs[@]}"
+_mongod_hack_ensure_arg() {
+	local ensureArg="$1"; shift
+	mongodHackedArgs=( "$@" )
+	if ! _mongod_hack_have_arg "$ensureArg" "$@"; then
+		mongodHackedArgs+=( "$ensureArg" )
+	fi
+}
+# _mongod_hack_ensure_arg_val '--some-arg' 'some-val' "$@"
+# set -- "${mongodHackedArgs[@]}"
+_mongod_hack_ensure_arg_val() {
+	local ensureArg="$1"; shift
+	local ensureVal="$1"; shift
+	mongodHackedArgs=()
+	while [ "$#" -gt 0 ]; do
+		arg="$1"; shift
+		case "$arg" in
+			"$ensureArg")
+				shift # also skip the value
+				continue
+				;;
+			"$ensureArg"=*)
+				# value is already included
+				continue
+				;;
+		esac
+		mongodHackedArgs+=( "$arg" )
+	done
+	mongodHackedArgs+=( "$ensureArg" "$ensureVal" )
+}
+# TODO what do to about "--config" ? :(
+
 if [ "$originalArgOne" = 'mongod' ]; then
 	file_env 'MONGO_INITDB_ROOT_USERNAME'
 	file_env 'MONGO_INITDB_ROOT_PASSWORD'
 	if [ "$MONGO_INITDB_ROOT_USERNAME" ] && [ "$MONGO_INITDB_ROOT_PASSWORD" ]; then
-		# if we have a username/password, let's set "--auth" (but only if it isn't included already, because mongod is very picky)
-		# see https://github.com/docker-library/mongo/issues/147
-		haveAuth=
-		for arg; do
-			if [ "$arg" = '--auth' ]; then
-				haveAuth=1
-				break
-			fi
-		done
-		if [ -z "$haveAuth" ]; then
-			set -- "$@" --auth
-		fi
+		# if we have a username/password, let's set "--auth"
+		_mongod_hack_ensure_arg '--auth' "$@"
+		set -- "${mongodHackedArgs[@]}"
 	fi
 
 	# check for a few known paths (to determine whether we've already initialized and should thus skip our initdb scripts)
@@ -86,11 +123,24 @@ if [ "$originalArgOne" = 'mongod' ]; then
 	done
 
 	if [ -z "$definitelyAlreadyInitialized" ]; then
+		if _mongod_hack_have_arg --config "$@"; then
+			echo >&2
+			echo >&2 'warning: database is not yet initialized, and "--config" is specified'
+			echo >&2 '  the initdb database startup might fail as a result!'
+			echo >&2
+		fi
+
 		pidfile="$(mktemp)"
 		trap "rm -f '$pidfile'" EXIT
-		"$@" --bind_ip 127.0.0.1 --logpath "/proc/$$/fd/1" --pidfilepath "$pidfile" --fork
-
-		mongo=( mongo --quiet )
+		_mongod_hack_ensure_arg_val --bind_ip 127.0.0.1 "$@"
+		_mongod_hack_ensure_arg_val --port 27017 "${mongodHackedArgs[@]}"
+		sslMode="$(_mongod_hack_have_arg '--sslPEMKeyFile' "$@" && echo 'allowSSL' || echo 'disabled')" # "BadValue: need sslPEMKeyFile when SSL is enabled" vs "BadValue: need to enable SSL via the sslMode flag when using SSL configuration parameters"
+		_mongod_hack_ensure_arg_val --sslMode "$sslMode" "${mongodHackedArgs[@]}"
+		_mongod_hack_ensure_arg_val --logpath "/proc/$$/fd/1" "${mongodHackedArgs[@]}"
+		_mongod_hack_ensure_arg_val --pidfilepath "$pidfile" "${mongodHackedArgs[@]}"
+		"${mongodHackedArgs[@]}" --fork
+
+		mongo=( mongo --host 127.0.0.1 --port 27017 --quiet )
 
 		# check to see that our "mongod" actually did start up (catches "--help", "--version", MongoDB 3.2 being silly, slow prealloc, etc)
 		# https://jira.mongodb.org/browse/SERVER-16292
diff --git a/mongo_latest/docker-entrypoint.sh b/mongo_latest/docker-entrypoint.sh
index 81e3af7..9f19336 100755
--- a/mongo_latest/docker-entrypoint.sh
+++ b/mongo_latest/docker-entrypoint.sh
@@ -53,22 +53,59 @@ file_env() {
 	unset "$fileVar"
 }
 
+# see https://github.com/docker-library/mongo/issues/147 (mongod is picky about duplicated arguments)
+_mongod_hack_have_arg() {
+	local checkArg="$1"; shift
+	for arg; do
+		case "$arg" in
+			"$checkArg"|"$checkArg"=*)
+				return 0
+				;;
+		esac
+	done
+	return 1
+}
+declare -a mongodHackedArgs
+# _mongod_hack_ensure_arg '--some-arg' "$@"
+# set -- "${mongodHackedArgs[@]}"
+_mongod_hack_ensure_arg() {
+	local ensureArg="$1"; shift
+	mongodHackedArgs=( "$@" )
+	if ! _mongod_hack_have_arg "$ensureArg" "$@"; then
+		mongodHackedArgs+=( "$ensureArg" )
+	fi
+}
+# _mongod_hack_ensure_arg_val '--some-arg' 'some-val' "$@"
+# set -- "${mongodHackedArgs[@]}"
+_mongod_hack_ensure_arg_val() {
+	local ensureArg="$1"; shift
+	local ensureVal="$1"; shift
+	mongodHackedArgs=()
+	while [ "$#" -gt 0 ]; do
+		arg="$1"; shift
+		case "$arg" in
+			"$ensureArg")
+				shift # also skip the value
+				continue
+				;;
+			"$ensureArg"=*)
+				# value is already included
+				continue
+				;;
+		esac
+		mongodHackedArgs+=( "$arg" )
+	done
+	mongodHackedArgs+=( "$ensureArg" "$ensureVal" )
+}
+# TODO what do to about "--config" ? :(
+
 if [ "$originalArgOne" = 'mongod' ]; then
 	file_env 'MONGO_INITDB_ROOT_USERNAME'
 	file_env 'MONGO_INITDB_ROOT_PASSWORD'
 	if [ "$MONGO_INITDB_ROOT_USERNAME" ] && [ "$MONGO_INITDB_ROOT_PASSWORD" ]; then
-		# if we have a username/password, let's set "--auth" (but only if it isn't included already, because mongod is very picky)
-		# see https://github.com/docker-library/mongo/issues/147
-		haveAuth=
-		for arg; do
-			if [ "$arg" = '--auth' ]; then
-				haveAuth=1
-				break
-			fi
-		done
-		if [ -z "$haveAuth" ]; then
-			set -- "$@" --auth
-		fi
+		# if we have a username/password, let's set "--auth"
+		_mongod_hack_ensure_arg '--auth' "$@"
+		set -- "${mongodHackedArgs[@]}"
 	fi
 
 	# check for a few known paths (to determine whether we've already initialized and should thus skip our initdb scripts)
@@ -86,11 +123,24 @@ if [ "$originalArgOne" = 'mongod' ]; then
 	done
 
 	if [ -z "$definitelyAlreadyInitialized" ]; then
+		if _mongod_hack_have_arg --config "$@"; then
+			echo >&2
+			echo >&2 'warning: database is not yet initialized, and "--config" is specified'
+			echo >&2 '  the initdb database startup might fail as a result!'
+			echo >&2
+		fi
+
 		pidfile="$(mktemp)"
 		trap "rm -f '$pidfile'" EXIT
-		"$@" --bind_ip 127.0.0.1 --logpath "/proc/$$/fd/1" --pidfilepath "$pidfile" --fork
-
-		mongo=( mongo --quiet )
+		_mongod_hack_ensure_arg_val --bind_ip 127.0.0.1 "$@"
+		_mongod_hack_ensure_arg_val --port 27017 "${mongodHackedArgs[@]}"
+		sslMode="$(_mongod_hack_have_arg '--sslPEMKeyFile' "$@" && echo 'allowSSL' || echo 'disabled')" # "BadValue: need sslPEMKeyFile when SSL is enabled" vs "BadValue: need to enable SSL via the sslMode flag when using SSL configuration parameters"
+		_mongod_hack_ensure_arg_val --sslMode "$sslMode" "${mongodHackedArgs[@]}"
+		_mongod_hack_ensure_arg_val --logpath "/proc/$$/fd/1" "${mongodHackedArgs[@]}"
+		_mongod_hack_ensure_arg_val --pidfilepath "$pidfile" "${mongodHackedArgs[@]}"
+		"${mongodHackedArgs[@]}" --fork
+
+		mongo=( mongo --host 127.0.0.1 --port 27017 --quiet )
 
 		# check to see that our "mongod" actually did start up (catches "--help", "--version", MongoDB 3.2 being silly, slow prealloc, etc)
 		# https://jira.mongodb.org/browse/SERVER-16292
diff --git a/mongo_unstable/docker-entrypoint.sh b/mongo_unstable/docker-entrypoint.sh
index 81e3af7..9f19336 100755
--- a/mongo_unstable/docker-entrypoint.sh
+++ b/mongo_unstable/docker-entrypoint.sh
@@ -53,22 +53,59 @@ file_env() {
 	unset "$fileVar"
 }
 
+# see https://github.com/docker-library/mongo/issues/147 (mongod is picky about duplicated arguments)
+_mongod_hack_have_arg() {
+	local checkArg="$1"; shift
+	for arg; do
+		case "$arg" in
+			"$checkArg"|"$checkArg"=*)
+				return 0
+				;;
+		esac
+	done
+	return 1
+}
+declare -a mongodHackedArgs
+# _mongod_hack_ensure_arg '--some-arg' "$@"
+# set -- "${mongodHackedArgs[@]}"
+_mongod_hack_ensure_arg() {
+	local ensureArg="$1"; shift
+	mongodHackedArgs=( "$@" )
+	if ! _mongod_hack_have_arg "$ensureArg" "$@"; then
+		mongodHackedArgs+=( "$ensureArg" )
+	fi
+}
+# _mongod_hack_ensure_arg_val '--some-arg' 'some-val' "$@"
+# set -- "${mongodHackedArgs[@]}"
+_mongod_hack_ensure_arg_val() {
+	local ensureArg="$1"; shift
+	local ensureVal="$1"; shift
+	mongodHackedArgs=()
+	while [ "$#" -gt 0 ]; do
+		arg="$1"; shift
+		case "$arg" in
+			"$ensureArg")
+				shift # also skip the value
+				continue
+				;;
+			"$ensureArg"=*)
+				# value is already included
+				continue
+				;;
+		esac
+		mongodHackedArgs+=( "$arg" )
+	done
+	mongodHackedArgs+=( "$ensureArg" "$ensureVal" )
+}
+# TODO what do to about "--config" ? :(
+
 if [ "$originalArgOne" = 'mongod' ]; then
 	file_env 'MONGO_INITDB_ROOT_USERNAME'
 	file_env 'MONGO_INITDB_ROOT_PASSWORD'
 	if [ "$MONGO_INITDB_ROOT_USERNAME" ] && [ "$MONGO_INITDB_ROOT_PASSWORD" ]; then
-		# if we have a username/password, let's set "--auth" (but only if it isn't included already, because mongod is very picky)
-		# see https://github.com/docker-library/mongo/issues/147
-		haveAuth=
-		for arg; do
-			if [ "$arg" = '--auth' ]; then
-				haveAuth=1
-				break
-			fi
-		done
-		if [ -z "$haveAuth" ]; then
-			set -- "$@" --auth
-		fi
+		# if we have a username/password, let's set "--auth"
+		_mongod_hack_ensure_arg '--auth' "$@"
+		set -- "${mongodHackedArgs[@]}"
 	fi
 
 	# check for a few known paths (to determine whether we've already initialized and should thus skip our initdb scripts)
@@ -86,11 +123,24 @@ if [ "$originalArgOne" = 'mongod' ]; then
 	done
 
 	if [ -z "$definitelyAlreadyInitialized" ]; then
+		if _mongod_hack_have_arg --config "$@"; then
+			echo >&2
+			echo >&2 'warning: database is not yet initialized, and "--config" is specified'
+			echo >&2 '  the initdb database startup might fail as a result!'
+			echo >&2
+		fi
+
 		pidfile="$(mktemp)"
 		trap "rm -f '$pidfile'" EXIT
-		"$@" --bind_ip 127.0.0.1 --logpath "/proc/$$/fd/1" --pidfilepath "$pidfile" --fork
-
-		mongo=( mongo --quiet )
+		_mongod_hack_ensure_arg_val --bind_ip 127.0.0.1 "$@"
+		_mongod_hack_ensure_arg_val --port 27017 "${mongodHackedArgs[@]}"
+		sslMode="$(_mongod_hack_have_arg '--sslPEMKeyFile' "$@" && echo 'allowSSL' || echo 'disabled')" # "BadValue: need sslPEMKeyFile when SSL is enabled" vs "BadValue: need to enable SSL via the sslMode flag when using SSL configuration parameters"
+		_mongod_hack_ensure_arg_val --sslMode "$sslMode" "${mongodHackedArgs[@]}"
+		_mongod_hack_ensure_arg_val --logpath "/proc/$$/fd/1" "${mongodHackedArgs[@]}"
+		_mongod_hack_ensure_arg_val --pidfilepath "$pidfile" "${mongodHackedArgs[@]}"
+		"${mongodHackedArgs[@]}" --fork
+
+		mongo=( mongo --host 127.0.0.1 --port 27017 --quiet )
 
 		# check to see that our "mongod" actually did start up (catches "--help", "--version", MongoDB 3.2 being silly, slow prealloc, etc)
 		# https://jira.mongodb.org/browse/SERVER-16292
diff --git a/postgres_9.2-alpine/docker-entrypoint.sh b/postgres_9.2-alpine/docker-entrypoint.sh
index 0b0af0d..0b30c05 100755
--- a/postgres_9.2-alpine/docker-entrypoint.sh
+++ b/postgres_9.2-alpine/docker-entrypoint.sh
@@ -86,7 +86,10 @@ if [ "$1" = 'postgres' ]; then
 			authMethod=trust
 		fi
 
-		{ echo; echo "host all all all $authMethod"; } | tee -a "$PGDATA/pg_hba.conf" > /dev/null
+		{
+			echo
+			echo "host all all all $authMethod"
+		} >> "$PGDATA/pg_hba.conf"
 
 		# internal start of server in order to allow set-up using psql-client		
 		# does not listen on external TCP/IP and waits until start finishes
diff --git a/postgres_9.2/docker-entrypoint.sh b/postgres_9.2/docker-entrypoint.sh
index 6b18e8b..354aa34 100755
--- a/postgres_9.2/docker-entrypoint.sh
+++ b/postgres_9.2/docker-entrypoint.sh
@@ -86,7 +86,10 @@ if [ "$1" = 'postgres' ]; then
 			authMethod=trust
 		fi
 
-		{ echo; echo "host all all all $authMethod"; } | tee -a "$PGDATA/pg_hba.conf" > /dev/null
+		{
+			echo
+			echo "host all all all $authMethod"
+		} >> "$PGDATA/pg_hba.conf"
 
 		# internal start of server in order to allow set-up using psql-client		
 		# does not listen on external TCP/IP and waits until start finishes
diff --git a/postgres_9.3-alpine/docker-entrypoint.sh b/postgres_9.3-alpine/docker-entrypoint.sh
index 0b0af0d..0b30c05 100755
--- a/postgres_9.3-alpine/docker-entrypoint.sh
+++ b/postgres_9.3-alpine/docker-entrypoint.sh
@@ -86,7 +86,10 @@ if [ "$1" = 'postgres' ]; then
 			authMethod=trust
 		fi
 
-		{ echo; echo "host all all all $authMethod"; } | tee -a "$PGDATA/pg_hba.conf" > /dev/null
+		{
+			echo
+			echo "host all all all $authMethod"
+		} >> "$PGDATA/pg_hba.conf"
 
 		# internal start of server in order to allow set-up using psql-client		
 		# does not listen on external TCP/IP and waits until start finishes
diff --git a/postgres_9.3/docker-entrypoint.sh b/postgres_9.3/docker-entrypoint.sh
index 6b18e8b..354aa34 100755
--- a/postgres_9.3/docker-entrypoint.sh
+++ b/postgres_9.3/docker-entrypoint.sh
@@ -86,7 +86,10 @@ if [ "$1" = 'postgres' ]; then
 			authMethod=trust
 		fi
 
-		{ echo; echo "host all all all $authMethod"; } | tee -a "$PGDATA/pg_hba.conf" > /dev/null
+		{
+			echo
+			echo "host all all all $authMethod"
+		} >> "$PGDATA/pg_hba.conf"
 
 		# internal start of server in order to allow set-up using psql-client		
 		# does not listen on external TCP/IP and waits until start finishes
diff --git a/postgres_9.4-alpine/docker-entrypoint.sh b/postgres_9.4-alpine/docker-entrypoint.sh
index 0b0af0d..0b30c05 100755
--- a/postgres_9.4-alpine/docker-entrypoint.sh
+++ b/postgres_9.4-alpine/docker-entrypoint.sh
@@ -86,7 +86,10 @@ if [ "$1" = 'postgres' ]; then
 			authMethod=trust
 		fi
 
-		{ echo; echo "host all all all $authMethod"; } | tee -a "$PGDATA/pg_hba.conf" > /dev/null
+		{
+			echo
+			echo "host all all all $authMethod"
+		} >> "$PGDATA/pg_hba.conf"
 
 		# internal start of server in order to allow set-up using psql-client		
 		# does not listen on external TCP/IP and waits until start finishes
diff --git a/postgres_9.4/docker-entrypoint.sh b/postgres_9.4/docker-entrypoint.sh
index 6b18e8b..354aa34 100755
--- a/postgres_9.4/docker-entrypoint.sh
+++ b/postgres_9.4/docker-entrypoint.sh
@@ -86,7 +86,10 @@ if [ "$1" = 'postgres' ]; then
 			authMethod=trust
 		fi
 
-		{ echo; echo "host all all all $authMethod"; } | tee -a "$PGDATA/pg_hba.conf" > /dev/null
+		{
+			echo
+			echo "host all all all $authMethod"
+		} >> "$PGDATA/pg_hba.conf"
 
 		# internal start of server in order to allow set-up using psql-client		
 		# does not listen on external TCP/IP and waits until start finishes
diff --git a/postgres_9.5-alpine/docker-entrypoint.sh b/postgres_9.5-alpine/docker-entrypoint.sh
index 0b0af0d..0b30c05 100755
--- a/postgres_9.5-alpine/docker-entrypoint.sh
+++ b/postgres_9.5-alpine/docker-entrypoint.sh
@@ -86,7 +86,10 @@ if [ "$1" = 'postgres' ]; then
 			authMethod=trust
 		fi
 
-		{ echo; echo "host all all all $authMethod"; } | tee -a "$PGDATA/pg_hba.conf" > /dev/null
+		{
+			echo
+			echo "host all all all $authMethod"
+		} >> "$PGDATA/pg_hba.conf"
 
 		# internal start of server in order to allow set-up using psql-client		
 		# does not listen on external TCP/IP and waits until start finishes
diff --git a/postgres_9.5/docker-entrypoint.sh b/postgres_9.5/docker-entrypoint.sh
index 6b18e8b..354aa34 100755
--- a/postgres_9.5/docker-entrypoint.sh
+++ b/postgres_9.5/docker-entrypoint.sh
@@ -86,7 +86,10 @@ if [ "$1" = 'postgres' ]; then
 			authMethod=trust
 		fi
 
-		{ echo; echo "host all all all $authMethod"; } | tee -a "$PGDATA/pg_hba.conf" > /dev/null
+		{
+			echo
+			echo "host all all all $authMethod"
+		} >> "$PGDATA/pg_hba.conf"
 
 		# internal start of server in order to allow set-up using psql-client		
 		# does not listen on external TCP/IP and waits until start finishes
diff --git a/postgres_alpine/docker-entrypoint.sh b/postgres_alpine/docker-entrypoint.sh
index 0b0af0d..0b30c05 100755
--- a/postgres_alpine/docker-entrypoint.sh
+++ b/postgres_alpine/docker-entrypoint.sh
@@ -86,7 +86,10 @@ if [ "$1" = 'postgres' ]; then
 			authMethod=trust
 		fi
 
-		{ echo; echo "host all all all $authMethod"; } | tee -a "$PGDATA/pg_hba.conf" > /dev/null
+		{
+			echo
+			echo "host all all all $authMethod"
+		} >> "$PGDATA/pg_hba.conf"
 
 		# internal start of server in order to allow set-up using psql-client		
 		# does not listen on external TCP/IP and waits until start finishes
diff --git a/postgres_latest/docker-entrypoint.sh b/postgres_latest/docker-entrypoint.sh
index 6b18e8b..354aa34 100755
--- a/postgres_latest/docker-entrypoint.sh
+++ b/postgres_latest/docker-entrypoint.sh
@@ -86,7 +86,10 @@ if [ "$1" = 'postgres' ]; then
 			authMethod=trust
 		fi
 
-		{ echo; echo "host all all all $authMethod"; } | tee -a "$PGDATA/pg_hba.conf" > /dev/null
+		{
+			echo
+			echo "host all all all $authMethod"
+		} >> "$PGDATA/pg_hba.conf"
 
 		# internal start of server in order to allow set-up using psql-client		
 		# does not listen on external TCP/IP and waits until start finishes
diff --git a/rabbitmq_alpine/Dockerfile b/rabbitmq_alpine/Dockerfile
index ea68f62..1e67215 100644
--- a/rabbitmq_alpine/Dockerfile
+++ b/rabbitmq_alpine/Dockerfile
@@ -75,7 +75,6 @@ RUN set -ex; \
 ENV HOME /var/lib/rabbitmq
 
 RUN mkdir -p /var/lib/rabbitmq /etc/rabbitmq \
-	&& echo '[ { rabbit, [ { loopback_users, [ ] } ] } ].' > /etc/rabbitmq/rabbitmq.config \
 	&& chown -R rabbitmq:rabbitmq /var/lib/rabbitmq /etc/rabbitmq \
 	&& chmod -R 777 /var/lib/rabbitmq /etc/rabbitmq
 VOLUME /var/lib/rabbitmq
diff --git a/rabbitmq_alpine/docker-entrypoint.sh b/rabbitmq_alpine/docker-entrypoint.sh
index 3f09b20..e06bdb5 100755
--- a/rabbitmq_alpine/docker-entrypoint.sh
+++ b/rabbitmq_alpine/docker-entrypoint.sh
@@ -64,6 +64,7 @@ rabbitConfigKeys=(
 	default_user
 	default_vhost
 	hipe_compile
+	vm_memory_high_watermark
 )
 fileConfigKeys=(
 	management_ssl_cacertfile
@@ -95,6 +96,10 @@ for conf in "${allConfigKeys[@]}"; do
 	var="RABBITMQ_${conf^^}"
 	val="${!var:-}"
 	if [ "$val" ]; then
+		if [ "${configDefaults[$conf]:-}" ] && [ "${configDefaults[$conf]}" = "$val" ]; then
+			# if the value set is the same as the default, treat it as if it isn't set
+			continue
+		fi
 		haveConfig=1
 		case "$conf" in
 			ssl_*) haveSslConfig=1 ;;
@@ -235,13 +240,82 @@ rabbit_env_config() {
 	join $'\n' "${ret[@]}"
 }
 
-if [ "$1" = 'rabbitmq-server' ] && [ "$haveConfig" ]; then
+shouldWriteConfig="$haveConfig"
+if [ ! -f /etc/rabbitmq/rabbitmq.config ]; then
+	shouldWriteConfig=1
+fi
+
+if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
 	fullConfig=()
 
 	rabbitConfig=(
 		"{ loopback_users, $(rabbit_array) }"
 	)
 
+	# determine whether to set "vm_memory_high_watermark" (based on cgroups)
+	if [ -r /sys/fs/cgroup/memory/memory.limit_in_bytes ] && [ -r /proc/meminfo ]; then
+		memLimitB="$(< /sys/fs/cgroup/memory/memory.limit_in_bytes)"
+		memLimitKb="$(( memLimitB / 1024 ))"
+
+		memTotalKb="$(awk -F ':? +' '$1 == "MemTotal" { print $2; exit }' /proc/meminfo)"
+
+		if [ "$memLimitKb" -gt "$memTotalKb" ]; then
+			memLimitB=
+			memLimitKb=
+		fi
+
+		# https://github.com/docker-library/rabbitmq/pull/105#issuecomment-242165822
+		vmMemoryHighWatermark=
+		if [ "${RABBITMQ_VM_MEMORY_HIGH_WATERMARK:-}" ]; then
+			vmMemoryHighWatermark="$(
+				awk -v lim="$memLimitB" '
+					/^[0-9]*[.][0-9]+$|^[0-9]+([.][0-9]+)?%$/ {
+						perc = $0;
+						if (perc ~ /%$/) {
+							gsub(/%$/, "", perc);
+							perc = perc / 100;
+						}
+						if (perc > 1.0 || perc <= 0.0) {
+							printf "error: invalid percentage for vm_memory_high_watermark: %s (must be > 0%%, <= 100%%)\n", $0 > "/dev/stderr";
+							exit 1;
+						}
+						if (lim) {
+							printf "{ absolute, %d }\n", lim * perc;
+						} else {
+							printf "%0.03f\n", perc;
+						}
+						next;
+					}
+					/^[0-9]+$/ {
+						printf "{ absolute, %s }\n", $0;
+						next;
+					}
+					/^[0-9]+([.][0-9]+)?[a-zA-Z]+$/ {
+						printf "{ absolute, \"%s\" }\n", $0;
+						next;
+					}
+					{
+						printf "error: unexpected input for vm_memory_high_watermark: %s\n", $0;
+						exit 1;
+					}
+				' <(echo "$RABBITMQ_VM_MEMORY_HIGH_WATERMARK")
+			)"
+		elif [ -n "$memLimitB" ]; then
+			# if there is a cgroup limit, default to 40% of _that_ (as recommended by upstream)
+			vmMemoryHighWatermark="{ absolute, $(( $memLimitB * 40 / 100 )) }"
+			# otherwise let the default behavior win (40% of the total available)
+		fi
+		if [ "$vmMemoryHighWatermark" ]; then
+			# https://www.rabbitmq.com/memory.html#memsup-usage
+			rabbitConfig+=( "{ vm_memory_high_watermark, $vmMemoryHighWatermark }" )
+		fi
+	elif [ "${RABBITMQ_VM_MEMORY_HIGH_WATERMARK:-}" ]; then
+		echo >&2 'warning: RABBITMQ_VM_MEMORY_HIGH_WATERMARK was specified, but one of the following is not readable:'
+		echo >&2 '  - /sys/fs/cgroup/memory/memory.limit_in_bytes'
+		echo >&2 '  - /proc/meminfo'
+		echo >&2 '(so "vm_memory_high_watermark" will not be set)'
+	fi
+
 	if [ "$haveSslConfig" ]; then
 		IFS=$'\n'
 		rabbitSslOptions=( $(rabbit_env_config 'ssl' "${sslConfigKeys[@]}") )
diff --git a/rabbitmq_latest/Dockerfile b/rabbitmq_latest/Dockerfile
index e6872ae..afb5640 100644
--- a/rabbitmq_latest/Dockerfile
+++ b/rabbitmq_latest/Dockerfile
@@ -75,7 +75,6 @@ ENV PATH /usr/lib/rabbitmq/bin:$PATH
 ENV HOME /var/lib/rabbitmq
 
 RUN mkdir -p /var/lib/rabbitmq /etc/rabbitmq \
-	&& echo '[ { rabbit, [ { loopback_users, [ ] } ] } ].' > /etc/rabbitmq/rabbitmq.config \
 	&& chown -R rabbitmq:rabbitmq /var/lib/rabbitmq /etc/rabbitmq \
 	&& chmod -R 777 /var/lib/rabbitmq /etc/rabbitmq
 VOLUME /var/lib/rabbitmq
diff --git a/rabbitmq_latest/docker-entrypoint.sh b/rabbitmq_latest/docker-entrypoint.sh
index 1ea9759..2607fdd 100755
--- a/rabbitmq_latest/docker-entrypoint.sh
+++ b/rabbitmq_latest/docker-entrypoint.sh
@@ -64,6 +64,7 @@ rabbitConfigKeys=(
 	default_user
 	default_vhost
 	hipe_compile
+	vm_memory_high_watermark
 )
 fileConfigKeys=(
 	management_ssl_cacertfile
@@ -95,6 +96,10 @@ for conf in "${allConfigKeys[@]}"; do
 	var="RABBITMQ_${conf^^}"
 	val="${!var:-}"
 	if [ "$val" ]; then
+		if [ "${configDefaults[$conf]:-}" ] && [ "${configDefaults[$conf]}" = "$val" ]; then
+			# if the value set is the same as the default, treat it as if it isn't set
+			continue
+		fi
 		haveConfig=1
 		case "$conf" in
 			ssl_*) haveSslConfig=1 ;;
@@ -235,13 +240,82 @@ rabbit_env_config() {
 	join $'\n' "${ret[@]}"
 }
 
-if [ "$1" = 'rabbitmq-server' ] && [ "$haveConfig" ]; then
+shouldWriteConfig="$haveConfig"
+if [ ! -f /etc/rabbitmq/rabbitmq.config ]; then
+	shouldWriteConfig=1
+fi
+
+if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
 	fullConfig=()
 
 	rabbitConfig=(
 		"{ loopback_users, $(rabbit_array) }"
 	)
 
+	# determine whether to set "vm_memory_high_watermark" (based on cgroups)
+	if [ -r /sys/fs/cgroup/memory/memory.limit_in_bytes ] && [ -r /proc/meminfo ]; then
+		memLimitB="$(< /sys/fs/cgroup/memory/memory.limit_in_bytes)"
+		memLimitKb="$(( memLimitB / 1024 ))"
+
+		memTotalKb="$(awk -F ':? +' '$1 == "MemTotal" { print $2; exit }' /proc/meminfo)"
+
+		if [ "$memLimitKb" -gt "$memTotalKb" ]; then
+			memLimitB=
+			memLimitKb=
+		fi
+
+		# https://github.com/docker-library/rabbitmq/pull/105#issuecomment-242165822
+		vmMemoryHighWatermark=
+		if [ "${RABBITMQ_VM_MEMORY_HIGH_WATERMARK:-}" ]; then
+			vmMemoryHighWatermark="$(
+				awk -v lim="$memLimitB" '
+					/^[0-9]*[.][0-9]+$|^[0-9]+([.][0-9]+)?%$/ {
+						perc = $0;
+						if (perc ~ /%$/) {
+							gsub(/%$/, "", perc);
+							perc = perc / 100;
+						}
+						if (perc > 1.0 || perc <= 0.0) {
+							printf "error: invalid percentage for vm_memory_high_watermark: %s (must be > 0%%, <= 100%%)\n", $0 > "/dev/stderr";
+							exit 1;
+						}
+						if (lim) {
+							printf "{ absolute, %d }\n", lim * perc;
+						} else {
+							printf "%0.03f\n", perc;
+						}
+						next;
+					}
+					/^[0-9]+$/ {
+						printf "{ absolute, %s }\n", $0;
+						next;
+					}
+					/^[0-9]+([.][0-9]+)?[a-zA-Z]+$/ {
+						printf "{ absolute, \"%s\" }\n", $0;
+						next;
+					}
+					{
+						printf "error: unexpected input for vm_memory_high_watermark: %s\n", $0;
+						exit 1;
+					}
+				' <(echo "$RABBITMQ_VM_MEMORY_HIGH_WATERMARK")
+			)"
+		elif [ -n "$memLimitB" ]; then
+			# if there is a cgroup limit, default to 40% of _that_ (as recommended by upstream)
+			vmMemoryHighWatermark="{ absolute, $(( $memLimitB * 40 / 100 )) }"
+			# otherwise let the default behavior win (40% of the total available)
+		fi
+		if [ "$vmMemoryHighWatermark" ]; then
+			# https://www.rabbitmq.com/memory.html#memsup-usage
+			rabbitConfig+=( "{ vm_memory_high_watermark, $vmMemoryHighWatermark }" )
+		fi
+	elif [ "${RABBITMQ_VM_MEMORY_HIGH_WATERMARK:-}" ]; then
+		echo >&2 'warning: RABBITMQ_VM_MEMORY_HIGH_WATERMARK was specified, but one of the following is not readable:'
+		echo >&2 '  - /sys/fs/cgroup/memory/memory.limit_in_bytes'
+		echo >&2 '  - /proc/meminfo'
+		echo >&2 '(so "vm_memory_high_watermark" will not be set)'
+	fi
+
 	if [ "$haveSslConfig" ]; then
 		IFS=$'\n'
 		rabbitSslOptions=( $(rabbit_env_config 'ssl' "${sslConfigKeys[@]}") )
diff --git a/rocket.chat_latest/Dockerfile b/rocket.chat_latest/Dockerfile
index 18581c8..fb28d52 100644
--- a/rocket.chat_latest/Dockerfile
+++ b/rocket.chat_latest/Dockerfile
@@ -13,7 +13,7 @@ VOLUME /app/uploads
 # gpg: key 4FD08014: public key "Rocket.Chat Buildmaster <buildmaster@rocket.chat>" imported
 RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 0E163286C20D07B9787EBE9FD7F9D0414FD08104
 
-ENV RC_VERSION 0.54.2
+ENV RC_VERSION 0.55.0-rc.1
 
 WORKDIR /app
 
diff --git a/drupal_rc-fpm-alpine/Dockerfile b/wordpress_cli-php5.6/Dockerfile
similarity index 27%
rename from drupal_rc-fpm-alpine/Dockerfile
rename to wordpress_cli-php5.6/Dockerfile
index 31626c6..83804e0 100644
--- a/drupal_rc-fpm-alpine/Dockerfile
+++ b/wordpress_cli-php5.6/Dockerfile
@@ -1,30 +1,26 @@
-# from https://www.drupal.org/requirements/php#drupalversions
-FROM php:7.0-fpm-alpine
+FROM php:5.6-alpine
 
 # install the PHP extensions we need
-# postgresql-dev is needed for https://bugs.alpinelinux.org/issues/3642
-RUN set -ex \
-	&& apk add --no-cache --virtual .build-deps \
-		coreutils \
-		freetype-dev \
+RUN set -ex; \
+	\
+	apk add --no-cache --virtual .build-deps \
 		libjpeg-turbo-dev \
 		libpng-dev \
-		postgresql-dev \
-	&& docker-php-ext-configure gd \
-		--with-freetype-dir=/usr/include/ \
-		--with-jpeg-dir=/usr/include/ \
-		--with-png-dir=/usr/include/ \
-	&& docker-php-ext-install -j "$(nproc)" gd mbstring opcache pdo pdo_mysql pdo_pgsql zip \
-	&& runDeps="$( \
+	; \
+	\
+	docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
+	docker-php-ext-install gd mysqli opcache; \
+	\
+	runDeps="$( \
 		scanelf --needed --nobanner --recursive \
 			/usr/local/lib/php/extensions \
 			| awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
 			| sort -u \
 			| xargs -r apk info --installed \
 			| sort -u \
-	)" \
-	&& apk add --virtual .drupal-phpexts-rundeps $runDeps \
-	&& apk del .build-deps
+	)"; \
+	apk add --virtual .wordpress-phpexts-rundeps $runDeps; \
+	apk del .build-deps
 
 # set recommended PHP.ini settings
 # see https://secure.php.net/manual/en/opcache.installation.php
@@ -32,19 +28,53 @@ RUN { \
 		echo 'opcache.memory_consumption=128'; \
 		echo 'opcache.interned_strings_buffer=8'; \
 		echo 'opcache.max_accelerated_files=4000'; \
-		echo 'opcache.revalidate_freq=60'; \
+		echo 'opcache.revalidate_freq=2'; \
 		echo 'opcache.fast_shutdown=1'; \
 		echo 'opcache.enable_cli=1'; \
 	} > /usr/local/etc/php/conf.d/opcache-recommended.ini
 
+# install wp-cli dependencies
+RUN apk add --no-cache \
+		less \
+		mysql-client
+
+RUN set -ex; \
+	mkdir -p /var/www/html; \
+	chown -R www-data:www-data /var/www/html
 WORKDIR /var/www/html
+VOLUME /var/www/html
+
+# pub   2048R/2F6B6B7F 2016-01-07
+#       Key fingerprint = 3B91 9162 5F3B 1F1B F5DD  3B47 673A 0204 2F6B 6B7F
+# uid                  Daniel Bachhuber <daniel@handbuilt.co>
+# sub   2048R/45F9CDE2 2016-01-07
+ENV WORDPRESS_CLI_GPG_KEY 3B9191625F3B1F1BF5DD3B47673A02042F6B6B7F
+
+ENV WORDPRESS_CLI_VERSION 1.1.0
+ENV WORDPRESS_CLI_SHA512 1fb4a3800441fc5188dac73efc6ca865076772ef698189ded379c53947d1fec30311e84eb4371455d415ef2cbb33d7593240fdf7b7f206277a12cfa8596d4b51
+
+RUN set -ex; \
+	\
+	apk add --no-cache --virtual .fetch-deps \
+		gnupg \
+	; \
+	\
+	curl -o /usr/local/bin/wp.gpg -fSL "https://github.com/wp-cli/wp-cli/releases/download/v${WORDPRESS_CLI_VERSION}/wp-cli-${WORDPRESS_CLI_VERSION}.phar.gpg"; \
+	\
+	export GNUPGHOME="$(mktemp -d)"; \
+	gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$WORDPRESS_CLI_GPG_KEY"; \
+	gpg --batch --decrypt --output /usr/local/bin/wp /usr/local/bin/wp.gpg; \
+	rm -r "$GNUPGHOME" /usr/local/bin/wp.gpg; \
+	\
+	echo "$WORDPRESS_CLI_SHA512 */usr/local/bin/wp" | sha512sum -c -; \
+	chmod +x /usr/local/bin/wp; \
+	\
+	apk del .fetch-deps; \
+	\
+	wp --allow-root --version
 
-# https://www.drupal.org/node/3060/release
-ENV DRUPAL_VERSION 8.3.0-rc2
-ENV DRUPAL_MD5 3bcddc9a48801f7035c7cb0e6f02f6d0
+COPY docker-entrypoint.sh /usr/local/bin/
 
-RUN curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz \
-	&& echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c - \
-	&& tar -xz --strip-components=1 -f drupal.tar.gz \
-	&& rm drupal.tar.gz \
-	&& chown -R www-data:www-data sites modules themes
+ENTRYPOINT ["docker-entrypoint.sh"]
+USER www-data
+CMD ["wp", "shell"]
diff --git a/wordpress_cli-php5.6/docker-entrypoint.sh b/wordpress_cli-php5.6/docker-entrypoint.sh
new file mode 100755
index 0000000..471e1cc
--- /dev/null
+++ b/wordpress_cli-php5.6/docker-entrypoint.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -euo pipefail
+
+# first arg is `-f` or `--some-option`
+if [ "${1#-}" != "$1" ]; then
+	set -- wp "$@"
+fi
+
+# if our command is a valid wp-cli subcommand, let's invoke it through wp-cli instead
+# (this allows for "docker run wordpress:cli help", etc)
+if wp --path=/dev/null help "$1" > /dev/null 2>&1; then
+	set -- wp "$@"
+fi
+
+exec "$@"
diff --git a/wordpress_php7.1-fpm-alpine/Dockerfile b/wordpress_cli-php7.0/Dockerfile
similarity index 46%
copy from wordpress_php7.1-fpm-alpine/Dockerfile
copy to wordpress_cli-php7.0/Dockerfile
index 9a9e5ed..73b477d 100644
--- a/wordpress_php7.1-fpm-alpine/Dockerfile
+++ b/wordpress_cli-php7.0/Dockerfile
@@ -1,11 +1,4 @@
-FROM php:7.1-fpm-alpine
-
-# docker-entrypoint.sh dependencies
-RUN apk add --no-cache \
-# in theory, docker-entrypoint.sh is POSIX-compliant, but priority is a working, consistent image
-		bash \
-# BusyBox sed is not sufficient for some of our sed expressions
-		sed
+FROM php:7.0-alpine
 
 # install the PHP extensions we need
 RUN set -ex; \
@@ -40,20 +33,48 @@ RUN { \
 		echo 'opcache.enable_cli=1'; \
 	} > /usr/local/etc/php/conf.d/opcache-recommended.ini
 
+# install wp-cli dependencies
+RUN apk add --no-cache \
+		less \
+		mysql-client
+
+RUN set -ex; \
+	mkdir -p /var/www/html; \
+	chown -R www-data:www-data /var/www/html
+WORKDIR /var/www/html
 VOLUME /var/www/html
 
-ENV WORDPRESS_VERSION 4.7.3
-ENV WORDPRESS_SHA1 35adcd8162eae00d5bc37f35344fdc06b22ffc98
+# pub   2048R/2F6B6B7F 2016-01-07
+#       Key fingerprint = 3B91 9162 5F3B 1F1B F5DD  3B47 673A 0204 2F6B 6B7F
+# uid                  Daniel Bachhuber <daniel@handbuilt.co>
+# sub   2048R/45F9CDE2 2016-01-07
+ENV WORDPRESS_CLI_GPG_KEY 3B9191625F3B1F1BF5DD3B47673A02042F6B6B7F
+
+ENV WORDPRESS_CLI_VERSION 1.1.0
+ENV WORDPRESS_CLI_SHA512 1fb4a3800441fc5188dac73efc6ca865076772ef698189ded379c53947d1fec30311e84eb4371455d415ef2cbb33d7593240fdf7b7f206277a12cfa8596d4b51
 
 RUN set -ex; \
-	curl -o wordpress.tar.gz -fSL "https://wordpress.org/wordpress-${WORDPRESS_VERSION}.tar.gz"; \
-	echo "$WORDPRESS_SHA1 *wordpress.tar.gz" | sha1sum -c -; \
-# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress
-	tar -xzf wordpress.tar.gz -C /usr/src/; \
-	rm wordpress.tar.gz; \
-	chown -R www-data:www-data /usr/src/wordpress
+	\
+	apk add --no-cache --virtual .fetch-deps \
+		gnupg \
+	; \
+	\
+	curl -o /usr/local/bin/wp.gpg -fSL "https://github.com/wp-cli/wp-cli/releases/download/v${WORDPRESS_CLI_VERSION}/wp-cli-${WORDPRESS_CLI_VERSION}.phar.gpg"; \
+	\
+	export GNUPGHOME="$(mktemp -d)"; \
+	gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$WORDPRESS_CLI_GPG_KEY"; \
+	gpg --batch --decrypt --output /usr/local/bin/wp /usr/local/bin/wp.gpg; \
+	rm -r "$GNUPGHOME" /usr/local/bin/wp.gpg; \
+	\
+	echo "$WORDPRESS_CLI_SHA512 */usr/local/bin/wp" | sha512sum -c -; \
+	chmod +x /usr/local/bin/wp; \
+	\
+	apk del .fetch-deps; \
+	\
+	wp --allow-root --version
 
 COPY docker-entrypoint.sh /usr/local/bin/
 
 ENTRYPOINT ["docker-entrypoint.sh"]
-CMD ["php-fpm"]
+USER www-data
+CMD ["wp", "shell"]
diff --git a/wordpress_cli-php7.0/docker-entrypoint.sh b/wordpress_cli-php7.0/docker-entrypoint.sh
new file mode 100755
index 0000000..471e1cc
--- /dev/null
+++ b/wordpress_cli-php7.0/docker-entrypoint.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -euo pipefail
+
+# first arg is `-f` or `--some-option`
+if [ "${1#-}" != "$1" ]; then
+	set -- wp "$@"
+fi
+
+# if our command is a valid wp-cli subcommand, let's invoke it through wp-cli instead
+# (this allows for "docker run wordpress:cli help", etc)
+if wp --path=/dev/null help "$1" > /dev/null 2>&1; then
+	set -- wp "$@"
+fi
+
+exec "$@"
diff --git a/wordpress_php7.1-fpm-alpine/Dockerfile b/wordpress_cli-php7.1/Dockerfile
similarity index 46%
copy from wordpress_php7.1-fpm-alpine/Dockerfile
copy to wordpress_cli-php7.1/Dockerfile
index 9a9e5ed..054940d 100644
--- a/wordpress_php7.1-fpm-alpine/Dockerfile
+++ b/wordpress_cli-php7.1/Dockerfile
@@ -1,11 +1,4 @@
-FROM php:7.1-fpm-alpine
-
-# docker-entrypoint.sh dependencies
-RUN apk add --no-cache \
-# in theory, docker-entrypoint.sh is POSIX-compliant, but priority is a working, consistent image
-		bash \
-# BusyBox sed is not sufficient for some of our sed expressions
-		sed
+FROM php:7.1-alpine
 
 # install the PHP extensions we need
 RUN set -ex; \
@@ -40,20 +33,48 @@ RUN { \
 		echo 'opcache.enable_cli=1'; \
 	} > /usr/local/etc/php/conf.d/opcache-recommended.ini
 
+# install wp-cli dependencies
+RUN apk add --no-cache \
+		less \
+		mysql-client
+
+RUN set -ex; \
+	mkdir -p /var/www/html; \
+	chown -R www-data:www-data /var/www/html
+WORKDIR /var/www/html
 VOLUME /var/www/html
 
-ENV WORDPRESS_VERSION 4.7.3
-ENV WORDPRESS_SHA1 35adcd8162eae00d5bc37f35344fdc06b22ffc98
+# pub   2048R/2F6B6B7F 2016-01-07
+#       Key fingerprint = 3B91 9162 5F3B 1F1B F5DD  3B47 673A 0204 2F6B 6B7F
+# uid                  Daniel Bachhuber <daniel@handbuilt.co>
+# sub   2048R/45F9CDE2 2016-01-07
+ENV WORDPRESS_CLI_GPG_KEY 3B9191625F3B1F1BF5DD3B47673A02042F6B6B7F
+
+ENV WORDPRESS_CLI_VERSION 1.1.0
+ENV WORDPRESS_CLI_SHA512 1fb4a3800441fc5188dac73efc6ca865076772ef698189ded379c53947d1fec30311e84eb4371455d415ef2cbb33d7593240fdf7b7f206277a12cfa8596d4b51
 
 RUN set -ex; \
-	curl -o wordpress.tar.gz -fSL "https://wordpress.org/wordpress-${WORDPRESS_VERSION}.tar.gz"; \
-	echo "$WORDPRESS_SHA1 *wordpress.tar.gz" | sha1sum -c -; \
-# upstream tarballs include ./wordpress/ so this gives us /usr/src/wordpress
-	tar -xzf wordpress.tar.gz -C /usr/src/; \
-	rm wordpress.tar.gz; \
-	chown -R www-data:www-data /usr/src/wordpress
+	\
+	apk add --no-cache --virtual .fetch-deps \
+		gnupg \
+	; \
+	\
+	curl -o /usr/local/bin/wp.gpg -fSL "https://github.com/wp-cli/wp-cli/releases/download/v${WORDPRESS_CLI_VERSION}/wp-cli-${WORDPRESS_CLI_VERSION}.phar.gpg"; \
+	\
+	export GNUPGHOME="$(mktemp -d)"; \
+	gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$WORDPRESS_CLI_GPG_KEY"; \
+	gpg --batch --decrypt --output /usr/local/bin/wp /usr/local/bin/wp.gpg; \
+	rm -r "$GNUPGHOME" /usr/local/bin/wp.gpg; \
+	\
+	echo "$WORDPRESS_CLI_SHA512 */usr/local/bin/wp" | sha512sum -c -; \
+	chmod +x /usr/local/bin/wp; \
+	\
+	apk del .fetch-deps; \
+	\
+	wp --allow-root --version
 
 COPY docker-entrypoint.sh /usr/local/bin/
 
 ENTRYPOINT ["docker-entrypoint.sh"]
-CMD ["php-fpm"]
+USER www-data
+CMD ["wp", "shell"]
diff --git a/wordpress_cli-php7.1/docker-entrypoint.sh b/wordpress_cli-php7.1/docker-entrypoint.sh
new file mode 100755
index 0000000..471e1cc
--- /dev/null
+++ b/wordpress_cli-php7.1/docker-entrypoint.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -euo pipefail
+
+# first arg is `-f` or `--some-option`
+if [ "${1#-}" != "$1" ]; then
+	set -- wp "$@"
+fi
+
+# if our command is a valid wp-cli subcommand, let's invoke it through wp-cli instead
+# (this allows for "docker run wordpress:cli help", etc)
+if wp --path=/dev/null help "$1" > /dev/null 2>&1; then
+	set -- wp "$@"
+fi
+
+exec "$@"

@tianon
Copy link
Member Author

tianon commented Apr 7, 2017

@pierreozoux this includes an RC of Rocket.Chat, FYI

@tianon
Copy link
Member Author

tianon commented Apr 7, 2017

Build test of #2838; 8467462 (drupal, ghost, mongo, postgres, rabbitmq, rocket.chat, wordpress):

$ bashbrew build drupal:8.3.0-apache
Building bashbrew/cache:a4011c49245a50b349b829aebd889706b435e3f57718d8fe5ab5c76056d9c7f1 (drupal:8.3.0-apache)
Tagging drupal:8.3.0-apache
Tagging drupal:8.3-apache
Tagging drupal:8-apache
Tagging drupal:apache
Tagging drupal:8.3.0
Tagging drupal:8.3
Tagging drupal:8
Tagging drupal:latest

$ test/run.sh drupal:8.3.0-apache
testing drupal:8.3.0-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.3.0-fpm
Building bashbrew/cache:406b07a24c13114d4957df62a427a64e8dbfe00f5640e0135b5bf8e277ab80c8 (drupal:8.3.0-fpm)
Tagging drupal:8.3.0-fpm
Tagging drupal:8.3-fpm
Tagging drupal:8-fpm
Tagging drupal:fpm

$ test/run.sh drupal:8.3.0-fpm
testing drupal:8.3.0-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.3.0-fpm-alpine
Building bashbrew/cache:af5dbb94a3ebe67c07e93433ab0a42c08c8747bb5842f6e4a9db62139627a3ef (drupal:8.3.0-fpm-alpine)
Tagging drupal:8.3.0-fpm-alpine
Tagging drupal:8.3-fpm-alpine
Tagging drupal:8-fpm-alpine
Tagging drupal:fpm-alpine

$ test/run.sh drupal:8.3.0-fpm-alpine
testing drupal:8.3.0-fpm-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 drupal:7.54-apache
Building bashbrew/cache:0d646130288c4b12a985c3707cd6adc713c84f51e1f2f55e8d6064e412eab263 (drupal:7.54-apache)
Tagging drupal:7.54-apache
Tagging drupal:7-apache
Tagging drupal:7.54
Tagging drupal:7

$ test/run.sh drupal:7.54-apache
testing drupal:7.54-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.54-fpm
Building bashbrew/cache:8c4b7cafcd856ed0ca71dd673681d784ff2c22c79388c0dbe85a0636936186f6 (drupal:7.54-fpm)
Tagging drupal:7.54-fpm
Tagging drupal:7-fpm

$ test/run.sh drupal:7.54-fpm
testing drupal:7.54-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:7.54-fpm-alpine
Building bashbrew/cache:330ad5632a0bfdf73fe3d9ce5b48c43e4b00e972c64a574b7c56267d1bf4085c (drupal:7.54-fpm-alpine)
Tagging drupal:7.54-fpm-alpine
Tagging drupal:7-fpm-alpine

$ test/run.sh drupal:7.54-fpm-alpine
testing drupal:7.54-fpm-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 ghost:0.11.7
Building bashbrew/cache:e83de79b87f938aa649a394ae3b6cf7b77a0bea5bb942f9bd81c32d78a885ab8 (ghost:0.11.7)
Tagging ghost:0.11.7
Tagging ghost:0.11
Tagging ghost:0
Tagging ghost:latest

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


$ bashbrew build ghost:0.11.7-alpine
Building bashbrew/cache:fac41126b03a366d5045d2cb7efb85c725e652d348a7e5ea22407f097beb89b0 (ghost:0.11.7-alpine)
Tagging ghost:0.11.7-alpine
Tagging ghost:0.11-alpine
Tagging ghost:0-alpine
Tagging ghost:alpine

$ test/run.sh ghost:0.11.7-alpine
testing ghost:0.11.7-alpine
	'utc' [1/5]...passed
	'cve-2014--shellshock' [2/5]...passed
	'no-hard-coded-passwords' [3/5]...passed
	'override-cmd' [4/5]...passed
	'ghost-basics' [5/5]....passed
$ bashbrew build mongo:3.0.14
Building bashbrew/cache:769445980e7e2eb679a19fcc8c4be75c9870906c29e74b43556a43ff61c56898 (mongo:3.0.14)
Tagging mongo:3.0.14
Tagging mongo:3.0

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


$ bashbrew build mongo:3.0.14-windowsservercore
skipping "mongo:3.0.14-windowsservercore" (due to unsatisfactory constraints ["windowsservercore"])

$ test/run.sh mongo:3.0.14-windowsservercore
testing mongo:3.0.14-windowsservercore
	image does not exist!


$ bashbrew build mongo:3.2.12
Building bashbrew/cache:c1754fea88f4281d5d4be8f5244a628ed5584eef22bfa8630eae7a36edd4cb1a (mongo:3.2.12)
Tagging mongo:3.2.12
Tagging mongo:3.2

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


$ bashbrew build mongo:3.2.12-windowsservercore
skipping "mongo:3.2.12-windowsservercore" (due to unsatisfactory constraints ["windowsservercore"])

$ test/run.sh mongo:3.2.12-windowsservercore
testing mongo:3.2.12-windowsservercore
	image does not exist!


$ bashbrew build mongo:3.4.3
Building bashbrew/cache:784931b11ef0f1ac92ee38e082de39f7bfbafa69b0f5281c6e5ac3f7a9a9e41d (mongo:3.4.3)
Tagging mongo:3.4.3
Tagging mongo:3.4
Tagging mongo:3
Tagging mongo:latest

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


$ bashbrew build mongo:3.4.3-windowsservercore
skipping "mongo:3.4.3-windowsservercore" (due to unsatisfactory constraints ["windowsservercore"])

$ test/run.sh mongo:3.4.3-windowsservercore
testing mongo:3.4.3-windowsservercore
	image does not exist!


$ bashbrew build mongo:3.5.5
Building bashbrew/cache:cb8dc245cbffbef932334999afb838abfff0eb5fe46256fb3235c7a1afb7eb5f (mongo:3.5.5)
Tagging mongo:3.5.5
Tagging mongo:3.5
Tagging mongo:unstable

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


$ bashbrew build mongo:3.5.5-windowsservercore
skipping "mongo:3.5.5-windowsservercore" (due to unsatisfactory constraints ["windowsservercore"])

$ test/run.sh mongo:3.5.5-windowsservercore
testing mongo:3.5.5-windowsservercore
	image does not exist!
$ bashbrew build postgres:9.6.2
Building bashbrew/cache:ee6ddc9b8a3286f39b402d89c48cf76d5b4c71640f6c25d8f0260a766af84a2b (postgres:9.6.2)
Tagging postgres:9.6.2
Tagging postgres:9.6
Tagging postgres:9
Tagging postgres:latest

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


$ bashbrew build postgres:9.6.2-alpine
Building bashbrew/cache:136a5dd061a9032a48b768c2e630d38cfe895640a8b60d92f77476424a395c09 (postgres:9.6.2-alpine)
Tagging postgres:9.6.2-alpine
Tagging postgres:9.6-alpine
Tagging postgres:9-alpine
Tagging postgres:alpine

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


$ bashbrew build postgres:9.5.6
Building bashbrew/cache:3ab752b752cfdef1922d394b7275427a4eb70b8b77f8ec16b35f8ac8ad23b38d (postgres:9.5.6)
Tagging postgres:9.5.6
Tagging postgres:9.5

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


$ bashbrew build postgres:9.5.6-alpine
Building bashbrew/cache:41681d5a5bc66420aa91d8c19e57132edf1c3a9d2c391e3f38eabb2426142a7b (postgres:9.5.6-alpine)
Tagging postgres:9.5.6-alpine
Tagging postgres:9.5-alpine

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


$ bashbrew build postgres:9.4.11
Building bashbrew/cache:a12ff3cfeef3883bcfea8b05f8365f0a83b1bf924fad24f7c3800d6f1c4ecbe9 (postgres:9.4.11)
Tagging postgres:9.4.11
Tagging postgres:9.4

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


$ bashbrew build postgres:9.4.11-alpine
Building bashbrew/cache:f96fa42d3df81422bf6c5218e0ad83ea44f7e8fa9a3b978a92a7e6b4ac93b92d (postgres:9.4.11-alpine)
Tagging postgres:9.4.11-alpine
Tagging postgres:9.4-alpine

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


$ bashbrew build postgres:9.3.16
Building bashbrew/cache:fd69d5a535b82b052b13fa92cde1678491ff0ebd14c83df1f7fe2d4ee77055a9 (postgres:9.3.16)
Tagging postgres:9.3.16
Tagging postgres:9.3

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


$ bashbrew build postgres:9.3.16-alpine
Building bashbrew/cache:6d606eebfa06a86c692c0b898b7d067cb5cd5e3fb43963a910a73a41bcb2f844 (postgres:9.3.16-alpine)
Tagging postgres:9.3.16-alpine
Tagging postgres:9.3-alpine

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


$ bashbrew build postgres:9.2.20
Building bashbrew/cache:346f3ee7b363b443a681ff88484b7bd0b0687df44a5e5956e739ccbe882ac77c (postgres:9.2.20)
Tagging postgres:9.2.20
Tagging postgres:9.2

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


$ bashbrew build postgres:9.2.20-alpine
Building bashbrew/cache:04f70992a559ea38d8ef35adf123e0cb3cb671f837c9ea8cae316aa44bc4a671 (postgres:9.2.20-alpine)
Tagging postgres:9.2.20-alpine
Tagging postgres:9.2-alpine

$ test/run.sh postgres:9.2.20-alpine
testing postgres:9.2.20-alpine
	'utc' [1/6]...passed
	'cve-2014--shellshock' [2/6]...passed
	'no-hard-coded-passwords' [3/6]...passed
	'override-cmd' [4/6]...passed
	'postgres-basics' [5/6].....passed
	'postgres-initdb' [6/6].....passed
$ bashbrew build rabbitmq:3.6.9
Building bashbrew/cache:8685945a952a64234a6ebe41f622b5de7007be7f4abf5035208baeb0ac2001b5 (rabbitmq:3.6.9)
Tagging rabbitmq:3.6.9
Tagging rabbitmq:3.6
Tagging rabbitmq:3
Tagging rabbitmq:latest

$ test/run.sh rabbitmq:3.6.9
testing rabbitmq:3.6.9
	'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.9-management
Building bashbrew/cache:113edb573c270f74a6a09470bb54e58919ee7486bc024b14849d0d3aaa7c40e8 (rabbitmq:3.6.9-management)
Tagging rabbitmq:3.6.9-management
Tagging rabbitmq:3.6-management
Tagging rabbitmq:3-management
Tagging rabbitmq:management

$ test/run.sh rabbitmq:3.6.9-management
testing rabbitmq:3.6.9-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 rabbitmq:3.6.9-alpine
Building bashbrew/cache:24112e096259d72eaaed9c13acd4e4f6b64df1caa7c225c28c4b80e22998c07c (rabbitmq:3.6.9-alpine)
Tagging rabbitmq:3.6.9-alpine
Tagging rabbitmq:3.6-alpine
Tagging rabbitmq:3-alpine
Tagging rabbitmq:alpine

$ test/run.sh rabbitmq:3.6.9-alpine
testing rabbitmq:3.6.9-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 rabbitmq:3.6.9-management-alpine
Building bashbrew/cache:376fa288a47c144d5791128a53fc6a8db1e9511a13e456ecb7d1b99a1b8b8d5e (rabbitmq:3.6.9-management-alpine)
Tagging rabbitmq:3.6.9-management-alpine
Tagging rabbitmq:3.6-management-alpine
Tagging rabbitmq:3-management-alpine
Tagging rabbitmq:management-alpine

$ test/run.sh rabbitmq:3.6.9-management-alpine
testing rabbitmq:3.6.9-management-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 rocket.chat:0.55.0-rc.1
Building bashbrew/cache:ae17afa53f92da232b1a73bbf076a8a3adfa5b794e471580542fab6638770bee (rocket.chat:0.55.0-rc.1)
Tagging rocket.chat:0.55.0-rc.1
Tagging rocket.chat:0.55.0-rc
Tagging rocket.chat:0.55
Tagging rocket.chat:latest

$ test/run.sh rocket.chat:0.55.0-rc.1
testing rocket.chat:0.55.0-rc.1
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed
$ bashbrew build wordpress:4.7.3-apache
Building bashbrew/cache:cff6cd8b7f6b3d1e37967ed5c3fef36f95442b3d4767ae9b8861bdb912e8dd4b (wordpress:4.7.3-apache)
Tagging wordpress:4.7.3-apache
Tagging wordpress:4.7-apache
Tagging wordpress:4-apache
Tagging wordpress:apache
Tagging wordpress:4.7.3
Tagging wordpress:4.7
Tagging wordpress:4
Tagging wordpress:latest
Tagging wordpress:4.7.3-php5.6-apache
Tagging wordpress:4.7-php5.6-apache
Tagging wordpress:4-php5.6-apache
Tagging wordpress:php5.6-apache
Tagging wordpress:4.7.3-php5.6
Tagging wordpress:4.7-php5.6
Tagging wordpress:4-php5.6
Tagging wordpress:php5.6

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


$ bashbrew build wordpress:4.7.3-fpm
Building bashbrew/cache:d87e9f443c482374eaf472a9e720abc906dd5f0f82ac954fa724c7485538bda9 (wordpress:4.7.3-fpm)
Tagging wordpress:4.7.3-fpm
Tagging wordpress:4.7-fpm
Tagging wordpress:4-fpm
Tagging wordpress:fpm
Tagging wordpress:4.7.3-php5.6-fpm
Tagging wordpress:4.7-php5.6-fpm
Tagging wordpress:4-php5.6-fpm
Tagging wordpress:php5.6-fpm

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


$ bashbrew build wordpress:4.7.3-fpm-alpine
Building bashbrew/cache:e65d330a0b287ebf5d4a243e3e6583079778d3dac1cf0fc6056a6ac7ed60167e (wordpress:4.7.3-fpm-alpine)
Tagging wordpress:4.7.3-fpm-alpine
Tagging wordpress:4.7-fpm-alpine
Tagging wordpress:4-fpm-alpine
Tagging wordpress:fpm-alpine
Tagging wordpress:4.7.3-php5.6-fpm-alpine
Tagging wordpress:4.7-php5.6-fpm-alpine
Tagging wordpress:4-php5.6-fpm-alpine
Tagging wordpress:php5.6-fpm-alpine

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


$ bashbrew build wordpress:4.7.3-php7.0-apache
Building bashbrew/cache:a6d6e3376e5fa8ca5234fb0a2db33d7747cab2d5a518ceedd36194041dc3d5df (wordpress:4.7.3-php7.0-apache)
Tagging wordpress:4.7.3-php7.0-apache
Tagging wordpress:4.7-php7.0-apache
Tagging wordpress:4-php7.0-apache
Tagging wordpress:php7.0-apache
Tagging wordpress:4.7.3-php7.0
Tagging wordpress:4.7-php7.0
Tagging wordpress:4-php7.0
Tagging wordpress:php7.0

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


$ bashbrew build wordpress:4.7.3-php7.0-fpm
Building bashbrew/cache:e2de8d5130e83414eac0410e8bbca029e05d17ce39a8b49baf9deef8d441eb63 (wordpress:4.7.3-php7.0-fpm)
Tagging wordpress:4.7.3-php7.0-fpm
Tagging wordpress:4.7-php7.0-fpm
Tagging wordpress:4-php7.0-fpm
Tagging wordpress:php7.0-fpm

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


$ bashbrew build wordpress:4.7.3-php7.0-fpm-alpine
Building bashbrew/cache:969b30be9f647ec180b31e785a09ead46dd4db3734e1d0ed489eab0899086d31 (wordpress:4.7.3-php7.0-fpm-alpine)
Tagging wordpress:4.7.3-php7.0-fpm-alpine
Tagging wordpress:4.7-php7.0-fpm-alpine
Tagging wordpress:4-php7.0-fpm-alpine
Tagging wordpress:php7.0-fpm-alpine

$ test/run.sh wordpress:4.7.3-php7.0-fpm-alpine
testing wordpress:4.7.3-php7.0-fpm-alpine
	'utc' [1/5]...passed
	'cve-2014--shellshock' [2/5]...passed
	'no-hard-coded-passwords' [3/5]...passed
	'override-cmd' [4/5]...passed
	'wordpress-fpm-run' [5/5]..........passed


$ bashbrew build wordpress:4.7.3-php7.1-apache
Building bashbrew/cache:8480681935ff6ceb2f0f69d5a21cea129598d0fffc611b768dd6b7fb80ade3b3 (wordpress:4.7.3-php7.1-apache)
Tagging wordpress:4.7.3-php7.1-apache
Tagging wordpress:4.7-php7.1-apache
Tagging wordpress:4-php7.1-apache
Tagging wordpress:php7.1-apache
Tagging wordpress:4.7.3-php7.1
Tagging wordpress:4.7-php7.1
Tagging wordpress:4-php7.1
Tagging wordpress:php7.1

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


$ bashbrew build wordpress:4.7.3-php7.1-fpm
Building bashbrew/cache:643f8f9fec7925214be78cdbf84f0260fdc30ca3c5beb3cb32f5779a01b14011 (wordpress:4.7.3-php7.1-fpm)
Tagging wordpress:4.7.3-php7.1-fpm
Tagging wordpress:4.7-php7.1-fpm
Tagging wordpress:4-php7.1-fpm
Tagging wordpress:php7.1-fpm

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


$ bashbrew build wordpress:4.7.3-php7.1-fpm-alpine
Building bashbrew/cache:ccc81f52cbe718fc25d86fcca5a79f58be66f54d8abfa2919fcf8060a9da1a72 (wordpress:4.7.3-php7.1-fpm-alpine)
Tagging wordpress:4.7.3-php7.1-fpm-alpine
Tagging wordpress:4.7-php7.1-fpm-alpine
Tagging wordpress:4-php7.1-fpm-alpine
Tagging wordpress:php7.1-fpm-alpine

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


$ bashbrew build wordpress:cli-1.1.0
Building bashbrew/cache:fb59044a65421f88f35634e4ea23cf7121bd3bc3e34219e63e28f0e5e7286980 (wordpress:cli-1.1.0)
Tagging wordpress:cli-1.1.0
Tagging wordpress:cli-1.1
Tagging wordpress:cli-1
Tagging wordpress:cli
Tagging wordpress:cli-1.1.0-php5.6
Tagging wordpress:cli-1.1-php5.6
Tagging wordpress:cli-1-php5.6
Tagging wordpress:cli-php5.6

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


$ bashbrew build wordpress:cli-1.1.0-php7.0
Building bashbrew/cache:979821aab3e1f78d077f122d208fc18e17ed624736840465004a076dbba6357d (wordpress:cli-1.1.0-php7.0)
Tagging wordpress:cli-1.1.0-php7.0
Tagging wordpress:cli-1.1-php7.0
Tagging wordpress:cli-1-php7.0
Tagging wordpress:cli-php7.0

$ test/run.sh wordpress:cli-1.1.0-php7.0
testing wordpress:cli-1.1.0-php7.0
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build wordpress:cli-1.1.0-php7.1
Building bashbrew/cache:078b1c6c76f965ca66a639988657d1fcc3bc568c6073b60c00d2d885fe2b5d39 (wordpress:cli-1.1.0-php7.1)
Tagging wordpress:cli-1.1.0-php7.1
Tagging wordpress:cli-1.1-php7.1
Tagging wordpress:cli-1-php7.1
Tagging wordpress:cli-php7.1

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

The following images failed at least one test:

  • mongo:
    • mongo:3.0.14-windowsservercore
    • mongo:3.2.12-windowsservercore
    • mongo:3.4.3-windowsservercore
    • mongo:3.5.5-windowsservercore

@yosifkit yosifkit merged commit 8575d1c into docker-library:master Apr 7, 2017
@yosifkit yosifkit deleted the update-docker-library branch April 7, 2017 19:17
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