-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Update docker-library images #3795
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
Merged
yosifkit
merged 2 commits into
docker-library:master
from
infosiftr:update-docker-library
Dec 12, 2017
Merged
Update docker-library images #3795
yosifkit
merged 2 commits into
docker-library:master
from
infosiftr:update-docker-library
Dec 12, 2017
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- `bash`: apply Alpine patch to 4.4 for process substitution hang (tianon/docker-bash#4) - `golang`: add `alpine3.7` variant of 1.9 (docker-library/golang#192) - `rabbitmq`: add 3.7, which includes a new configuration file format (docker-library/rabbitmq#197) - `ruby`: remove `2.5-rc-alpine3.6` variant (superseded by `2.5-rc-alpine3.7`)
Member
Diff:diff --git a/_bashbrew-arches b/_bashbrew-arches
index 2392ace..17f9fe9 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -74,6 +74,12 @@ golang:1.8-stretch @ ppc64le
golang:1.8-stretch @ s390x
golang:1.8-windowsservercore-1709 @ windows-amd64
golang:1.8-windowsservercore-ltsc2016 @ windows-amd64
+golang:alpine3.7 @ amd64
+golang:alpine3.7 @ arm32v6
+golang:alpine3.7 @ arm64v8
+golang:alpine3.7 @ i386
+golang:alpine3.7 @ ppc64le
+golang:alpine3.7 @ s390x
golang:alpine @ amd64
golang:alpine @ arm32v6
golang:alpine @ arm64v8
@@ -104,6 +110,32 @@ golang:stretch @ ppc64le
golang:stretch @ s390x
golang:windowsservercore-1709 @ windows-amd64
golang:windowsservercore-ltsc2016 @ windows-amd64
+rabbitmq:3.6 @ amd64
+rabbitmq:3.6 @ arm32v5
+rabbitmq:3.6 @ arm32v7
+rabbitmq:3.6 @ arm64v8
+rabbitmq:3.6 @ i386
+rabbitmq:3.6 @ ppc64le
+rabbitmq:3.6 @ s390x
+rabbitmq:3.6-alpine @ amd64
+rabbitmq:3.6-alpine @ arm32v6
+rabbitmq:3.6-alpine @ arm64v8
+rabbitmq:3.6-alpine @ i386
+rabbitmq:3.6-alpine @ ppc64le
+rabbitmq:3.6-alpine @ s390x
+rabbitmq:3.6-management @ amd64
+rabbitmq:3.6-management @ arm32v5
+rabbitmq:3.6-management @ arm32v7
+rabbitmq:3.6-management @ arm64v8
+rabbitmq:3.6-management @ i386
+rabbitmq:3.6-management @ ppc64le
+rabbitmq:3.6-management @ s390x
+rabbitmq:3.6-management-alpine @ amd64
+rabbitmq:3.6-management-alpine @ arm32v6
+rabbitmq:3.6-management-alpine @ arm64v8
+rabbitmq:3.6-management-alpine @ i386
+rabbitmq:3.6-management-alpine @ ppc64le
+rabbitmq:3.6-management-alpine @ s390x
rabbitmq:alpine @ amd64
rabbitmq:alpine @ arm32v6
rabbitmq:alpine @ arm64v8
@@ -208,12 +240,6 @@ ruby:rc @ arm64v8
ruby:rc @ i386
ruby:rc @ ppc64le
ruby:rc @ s390x
-ruby:rc-alpine3.6 @ amd64
-ruby:rc-alpine3.6 @ arm32v6
-ruby:rc-alpine3.6 @ arm64v8
-ruby:rc-alpine3.6 @ i386
-ruby:rc-alpine3.6 @ ppc64le
-ruby:rc-alpine3.6 @ s390x
ruby:rc-alpine @ amd64
ruby:rc-alpine @ arm32v6
ruby:rc-alpine @ arm64v8
diff --git a/_bashbrew-list b/_bashbrew-list
index c0fd0bd..f19f0e7 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -20,6 +20,7 @@ bash:latest
golang:1
golang:1-alpine
golang:1-alpine3.6
+golang:1-alpine3.7
golang:1-nanoserver-sac2016
golang:1-stretch
golang:1-windowsservercore-1709
@@ -47,6 +48,7 @@ golang:1.8.5-windowsservercore-ltsc2016
golang:1.9
golang:1.9-alpine
golang:1.9-alpine3.6
+golang:1.9-alpine3.7
golang:1.9-nanoserver-sac2016
golang:1.9-stretch
golang:1.9-windowsservercore-1709
@@ -54,6 +56,7 @@ golang:1.9-windowsservercore-ltsc2016
golang:1.9.2
golang:1.9.2-alpine
golang:1.9.2-alpine3.6
+golang:1.9.2-alpine3.7
golang:1.9.2-nanoserver-sac2016
golang:1.9.2-stretch
golang:1.9.2-windowsservercore-1709
@@ -74,6 +77,7 @@ golang:1.10-rc-windowsservercore-1709
golang:1.10-rc-windowsservercore-ltsc2016
golang:alpine
golang:alpine3.6
+golang:alpine3.7
golang:latest
golang:nanoserver
golang:nanoserver-sac2016
@@ -100,6 +104,14 @@ rabbitmq:3.6.14
rabbitmq:3.6.14-alpine
rabbitmq:3.6.14-management
rabbitmq:3.6.14-management-alpine
+rabbitmq:3.7
+rabbitmq:3.7-alpine
+rabbitmq:3.7-management
+rabbitmq:3.7-management-alpine
+rabbitmq:3.7.0
+rabbitmq:3.7.0-alpine
+rabbitmq:3.7.0-management
+rabbitmq:3.7.0-management-alpine
rabbitmq:alpine
rabbitmq:latest
rabbitmq:management
@@ -167,14 +179,12 @@ ruby:2.4.2-slim-stretch
ruby:2.4.2-stretch
ruby:2.5-rc
ruby:2.5-rc-alpine
-ruby:2.5-rc-alpine3.6
ruby:2.5-rc-alpine3.7
ruby:2.5-rc-slim
ruby:2.5-rc-slim-stretch
ruby:2.5-rc-stretch
ruby:2.5.0-preview1
ruby:2.5.0-preview1-alpine
-ruby:2.5.0-preview1-alpine3.6
ruby:2.5.0-preview1-alpine3.7
ruby:2.5.0-preview1-slim
ruby:2.5.0-preview1-slim-stretch
@@ -188,7 +198,6 @@ ruby:latest
ruby:onbuild
ruby:rc
ruby:rc-alpine
-ruby:rc-alpine3.6
ruby:rc-alpine3.7
ruby:rc-slim
ruby:rc-slim-stretch
diff --git a/bash_latest/Dockerfile b/bash_latest/Dockerfile
index f1102df..52abd85 100644
--- a/bash_latest/Dockerfile
+++ b/bash_latest/Dockerfile
@@ -79,6 +79,15 @@ RUN set -ex; \
rmdir bash-patches; \
fi; \
\
+# temporarily apply Alpine's patch to fix process substitution hanging in 4.4
+# see https://github.com/tianon/docker-bash/issues/4
+# and https://lists.gnu.org/archive/html/bug-bash/2017-12/msg00025.html
+# and https://github.com/alpinelinux/aports/commit/3239e62fb1c7968e923016358345a4dcc7e2f87d
+ wget -O alpine-fix-jobs.patch 'https://github.com/alpinelinux/aports/raw/3239e62fb1c7968e923016358345a4dcc7e2f87d/main/bash/fix-jobs.patch'; \
+ echo '0e1a1d0f9d1ec90188beb99e5c6c5c92a2baeb26f9d4f147b4c9e0a2b697d2d13ff3210985b8ebf849f916af1cc124f655bd026b28f37d5abd51be7b9672da9a *alpine-fix-jobs.patch' | sha512sum -c -; \
+ patch --directory=/usr/src/bash --input="$PWD/alpine-fix-jobs.patch" --strip=1; \
+ rm alpine-fix-jobs.patch; \
+ \
cd /usr/src/bash; \
gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
# update "config.guess" and "config.sub" to get more aggressively inclusive architecture support
diff --git a/golang_alpine/Dockerfile b/golang_alpine3.7/Dockerfile
similarity index 99%
copy from golang_alpine/Dockerfile
copy to golang_alpine3.7/Dockerfile
index f9a6904..77aa5ef 100644
--- a/golang_alpine/Dockerfile
+++ b/golang_alpine3.7/Dockerfile
@@ -1,4 +1,4 @@
-FROM alpine:3.6
+FROM alpine:3.7
RUN apk add --no-cache ca-certificates
diff --git a/golang_1.8-alpine/go-wrapper b/golang_alpine3.7/go-wrapper
similarity index 100%
copy from golang_1.8-alpine/go-wrapper
copy to golang_alpine3.7/go-wrapper
diff --git a/golang_1.8-alpine3.6/make-sure-R0-is-zero-before-main-on-ppc64le.patch b/golang_alpine3.7/make-sure-R0-is-zero-before-main-on-ppc64le.patch
similarity index 100%
copy from golang_1.8-alpine3.6/make-sure-R0-is-zero-before-main-on-ppc64le.patch
copy to golang_alpine3.7/make-sure-R0-is-zero-before-main-on-ppc64le.patch
diff --git a/golang_alpine/no-pic.patch b/golang_alpine3.7/no-pic.patch
similarity index 100%
copy from golang_alpine/no-pic.patch
copy to golang_alpine3.7/no-pic.patch
diff --git a/rabbitmq_alpine/Dockerfile b/rabbitmq_3.6-alpine/Dockerfile
similarity index 100%
copy from rabbitmq_alpine/Dockerfile
copy to rabbitmq_3.6-alpine/Dockerfile
diff --git a/rabbitmq_alpine/docker-entrypoint.sh b/rabbitmq_3.6-alpine/docker-entrypoint.sh
similarity index 100%
copy from rabbitmq_alpine/docker-entrypoint.sh
copy to rabbitmq_3.6-alpine/docker-entrypoint.sh
diff --git a/rabbitmq_management-alpine/Dockerfile b/rabbitmq_3.6-management-alpine/Dockerfile
similarity index 100%
copy from rabbitmq_management-alpine/Dockerfile
copy to rabbitmq_3.6-management-alpine/Dockerfile
diff --git a/rabbitmq_management/Dockerfile b/rabbitmq_3.6-management/Dockerfile
similarity index 100%
copy from rabbitmq_management/Dockerfile
copy to rabbitmq_3.6-management/Dockerfile
diff --git a/rabbitmq_latest/Dockerfile b/rabbitmq_3.6/Dockerfile
similarity index 98%
copy from rabbitmq_latest/Dockerfile
copy to rabbitmq_3.6/Dockerfile
index 7b37bb1..9241e8f 100644
--- a/rabbitmq_latest/Dockerfile
+++ b/rabbitmq_3.6/Dockerfile
@@ -1,6 +1,6 @@
FROM debian:stretch-slim
-RUN set -ex; \
+RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
gnupg \
@@ -13,7 +13,7 @@ RUN groupadd -r rabbitmq && useradd -r -d /var/lib/rabbitmq -m -g rabbitmq rabbi
# grab gosu for easy step-down from root
ENV GOSU_VERSION 1.10
-RUN set -x \
+RUN set -eux \
&& apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \
&& 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" \
@@ -26,7 +26,7 @@ RUN set -x \
&& apt-get purge -y --auto-remove ca-certificates wget
# install Erlang
-RUN set -ex; \
+RUN set -eux; \
apt-get update; \
# "erlang-base-hipe" is optional (and only supported on a few arches)
# so, only install it if it's available for our current arch
@@ -64,7 +64,7 @@ ENV RABBITMQ_VERSION 3.6.14
ENV RABBITMQ_GITHUB_TAG rabbitmq_v3_6_14
ENV RABBITMQ_DEBIAN_VERSION 3.6.14-1
-RUN set -ex; \
+RUN set -eux; \
\
apt-get update; \
apt-get install -y --no-install-recommends ca-certificates wget; \
diff --git a/rabbitmq_latest/docker-entrypoint.sh b/rabbitmq_3.6/docker-entrypoint.sh
similarity index 100%
copy from rabbitmq_latest/docker-entrypoint.sh
copy to rabbitmq_3.6/docker-entrypoint.sh
diff --git a/rabbitmq_alpine/Dockerfile b/rabbitmq_alpine/Dockerfile
index b82c25a..b77868e 100644
--- a/rabbitmq_alpine/Dockerfile
+++ b/rabbitmq_alpine/Dockerfile
@@ -1,4 +1,4 @@
-FROM alpine:3.6
+FROM alpine:3.7
# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
RUN addgroup -S rabbitmq && adduser -S -h /var/lib/rabbitmq -G rabbitmq rabbitmq
@@ -36,8 +36,8 @@ ENV PATH $RABBITMQ_HOME/sbin:$PATH
# gpg: key 6026DFCA: public key "RabbitMQ Release Signing Key <info@rabbitmq.com>" imported
ENV RABBITMQ_GPG_KEY 0A9AF2115F4687BD29803A206B73A36E6026DFCA
-ENV RABBITMQ_VERSION 3.6.14
-ENV RABBITMQ_GITHUB_TAG rabbitmq_v3_6_14
+ENV RABBITMQ_VERSION 3.7.0
+ENV RABBITMQ_GITHUB_TAG v3.7.0
RUN set -ex; \
\
@@ -76,9 +76,9 @@ RUN set -ex; \
# set home so that any `--user` knows where to put the erlang cookie
ENV HOME /var/lib/rabbitmq
-RUN mkdir -p /var/lib/rabbitmq /etc/rabbitmq \
- && chown -R rabbitmq:rabbitmq /var/lib/rabbitmq /etc/rabbitmq \
- && chmod -R 777 /var/lib/rabbitmq /etc/rabbitmq
+RUN mkdir -p /var/lib/rabbitmq /etc/rabbitmq /var/log/rabbitmq \
+ && chown -R rabbitmq:rabbitmq /var/lib/rabbitmq /etc/rabbitmq /var/log/rabbitmq \
+ && chmod -R 777 /var/lib/rabbitmq /etc/rabbitmq /var/log/rabbitmq
VOLUME /var/lib/rabbitmq
# add a symlink to the .erlang.cookie in /root so we can "docker exec rabbitmqctl ..." without gosu
diff --git a/rabbitmq_alpine/docker-entrypoint.sh b/rabbitmq_alpine/docker-entrypoint.sh
index d73505d..aefb563 100755
--- a/rabbitmq_alpine/docker-entrypoint.sh
+++ b/rabbitmq_alpine/docker-entrypoint.sh
@@ -156,7 +156,7 @@ for conf in "${!configDefaults[@]}"; do
eval "export $var=\"\$default\""
done
-# If long & short hostnames are not the same, use long hostnames
+# if long and short hostnames are not the same, use long hostnames
if [ "$(hostname)" != "$(hostname -s)" ]; then
: "${RABBITMQ_USE_LONGNAME:=true}"
fi
@@ -175,87 +175,92 @@ if [ "${RABBITMQ_ERLANG_COOKIE:-}" ]; then
chmod 600 "$cookieFile"
fi
-# 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'
+configBase="${RABBITMQ_CONFIG_FILE:-/etc/rabbitmq/rabbitmq}"
+oldConfigFile="$configBase.config"
+newConfigFile="$configBase.conf"
+
+shouldWriteConfig="$haveConfig"
+if [ -n "$shouldWriteConfig" ] && [ -f "$oldConfigFile" ]; then
+ {
+ echo "error: Docker configuration environment variables specified, but old-style (Erlang syntax) configuration file '$oldConfigFile' exists"
+ echo " Suggested fixes: (choose one)"
+ echo " - remove '$oldConfigFile'"
+ echo " - remove any Docker-specific 'RABBITMQ_...' environment variables"
+ echo " - convert '$oldConfigFile' to the newer sysctl format ('$newConfigFile'); see https://www.rabbitmq.com/configure.html#config-file"
+ } >&2
+ exit 1
+fi
+if [ -z "$shouldWriteConfig" ] && [ ! -f "$oldConfigFile" ] && [ ! -f "$newConfigFile" ]; then
+ # no config files, we should write one
+ shouldWriteConfig=1
+fi
+
+# http://stackoverflow.com/a/2705678/433558
+sed_escape_lhs() {
+ echo "$@" | sed -e 's/[]\/$*.^|[]/\\&/g'
}
-rabbit_array() {
- echo -n '['
- case "$#" in
- 0) echo -n ' ' ;;
- 1) echo -n " $1 " ;;
- *)
- local vals="$(join $',\n' "$@")"
- echo
- indent "$vals"
- esac
- echo -n ']'
+sed_escape_rhs() {
+ echo "$@" | sed -e 's/[\/&]/\\&/g'
}
-rabbit_string() {
+rabbit_set_config() {
+ local key="$1"; shift
local val="$1"; shift
- # fire up erlang directly to have it do the proper escaping for us
- erl -noinput -eval 'io:format("~p\n", init:get_plain_arguments()), init:stop().' -- "$val"
+
+ [ -e "$newConfigFile" ] || touch "$newConfigFile"
+
+ local sedKey="$(sed_escape_lhs "$key")"
+ local sedVal="$(sed_escape_rhs "$val")"
+ sed -ri \
+ "s/^[[:space:]]*(${sedKey}[[:space:]]*=[[:space:]]*)\S.*\$/\1${sedVal}/" \
+ "$newConfigFile"
+ if ! grep -qE "^${sedKey}[[:space:]]*=" "$newConfigFile"; then
+ echo "$key = $val" >> "$newConfigFile"
+ fi
+}
+rabbit_comment_config() {
+ local key="$1"; shift
+
+ [ -e "$newConfigFile" ] || touch "$newConfigFile"
+
+ local sedKey="$(sed_escape_lhs "$key")"
+ sed -ri \
+ "s/^[[:space:]]*#?[[:space:]]*(${sedKey}[[:space:]]*=[[:space:]]*\S.*)\$/# \1/" \
+ "$newConfigFile"
}
rabbit_env_config() {
local prefix="$1"; shift
- local ret=()
local conf
for conf; do
local var="rabbitmq${prefix:+_$prefix}_$conf"
var="${var^^}"
- local val="${!var:-}"
+ local key="$conf"
+ case "$prefix" in
+ ssl) key="ssl_options.$key" ;;
+ management_ssl) key="management.listener.ssl_opts.$key" ;;
+ esac
- local rawVal=
+ local val="${!var:-}"
+ local rawVal="$val"
case "$conf" in
- verify|fail_if_no_peer_cert|depth)
- [ "$val" ] || continue
- rawVal="$val"
- ;;
-
- hipe_compile)
- [ "$val" ] && rawVal='true' || rawVal='false'
- ;;
-
- cacertfile|certfile|keyfile)
- [ "$val" ] || continue
- rawVal="$(rabbit_string "$val")"
+ verify|fail_if_no_peer_cert|depth|hipe_compile)
+ [ -n "$val" ] && rawVal='true' || rawVal='false'
;;
- *)
- [ "$val" ] || continue
- rawVal="<<$(rabbit_string "$val")>>"
- ;;
+ vm_memory_high_watermark) continue ;; # handled separately
esac
- [ "$rawVal" ] || continue
- ret+=( "{ $conf, $rawVal }" )
+ if [ -n "$rawVal" ]; then
+ rabbit_set_config "$key" "$rawVal"
+ else
+ rabbit_comment_config "$key"
+ fi
done
-
- join $'\n' "${ret[@]}"
}
-shouldWriteConfig="$haveConfig"
-if [ ! -f /etc/rabbitmq/rabbitmq.config ]; then
- shouldWriteConfig=1
-fi
-
if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
- fullConfig=()
-
- rabbitConfig=(
- "{ loopback_users, $(rabbit_array) }"
- )
+ rabbit_set_config 'loopback_users.guest' 'false'
# determine whether to set "vm_memory_high_watermark" (based on cgroups)
memTotalKb=
@@ -277,12 +282,14 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
if [ -n "$memLimitB" ]; then
# if we have a cgroup memory limit, let's inform RabbitMQ of what it is (so it can calculate vm_memory_high_watermark properly)
# https://github.com/rabbitmq/rabbitmq-server/pull/1234
- rabbitConfig+=( "{ total_memory_available_override_value, $memLimitB }" )
+ :# TODO rabbit_set_config 'total_memory_available_override_value' "$memLimitB"
+ # TODO https://github.com/rabbitmq/rabbitmq-server/issues/1445 (missing in 3.7.0)
fi
+ # https://www.rabbitmq.com/memory.html#memsup-usage
if [ "${RABBITMQ_VM_MEMORY_HIGH_WATERMARK:-}" ]; then
# https://github.com/docker-library/rabbitmq/pull/105#issuecomment-242165822
vmMemoryHighWatermark="$(
- awk '
+ echo "$RABBITMQ_VM_MEMORY_HIGH_WATERMARK" | awk '
/^[0-9]*[.][0-9]+$|^[0-9]+([.][0-9]+)?%$/ {
perc = $0;
if (perc ~ /%$/) {
@@ -293,93 +300,64 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
printf "error: invalid percentage for vm_memory_high_watermark: %s (must be > 0%%, <= 100%%)\n", $0 > "/dev/stderr";
exit 1;
}
- printf "%0.03f\n", perc;
+ printf "vm_memory_high_watermark.relative %0.03f\n", perc;
next;
}
/^[0-9]+$/ {
- printf "{ absolute, %s }\n", $0;
+ printf "vm_memory_high_watermark.absolute %s\n", $0;
next;
}
/^[0-9]+([.][0-9]+)?[a-zA-Z]+$/ {
- printf "{ absolute, \"%s\" }\n", $0;
+ printf "vm_memory_high_watermark.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")
+ '
)"
if [ "$vmMemoryHighWatermark" ]; then
- # https://www.rabbitmq.com/memory.html#memsup-usage
- rabbitConfig+=( "{ vm_memory_high_watermark, $vmMemoryHighWatermark }" )
+ vmMemoryHighWatermarkKey="${vmMemoryHighWatermark%% *}"
+ vmMemoryHighWatermarkVal="${vmMemoryHighWatermark#$vmMemoryHighWatermarkKey }"
+ rabbit_set_config "$vmMemoryHighWatermarkKey" "$vmMemoryHighWatermarkVal"
+ case "$vmMemoryHighWatermarkKey" in
+ # make sure we only set one or the other
+ 'vm_memory_high_watermark.absolute') rabbit_comment_config 'vm_memory_high_watermark.relative' ;;
+ 'vm_memory_high_watermark.relative') rabbit_comment_config 'vm_memory_high_watermark.absolute' ;;
+ esac
fi
fi
if [ "$haveSslConfig" ]; then
- IFS=$'\n'
- rabbitSslOptions=( $(rabbit_env_config 'ssl' "${sslConfigKeys[@]}") )
- unset IFS
-
- rabbitConfig+=(
- "{ tcp_listeners, $(rabbit_array) }"
- "{ ssl_listeners, $(rabbit_array 5671) }"
- "{ ssl_options, $(rabbit_array "${rabbitSslOptions[@]}") }"
- )
+ rabbit_set_config 'listeners.ssl.default' 5671
+ rabbit_env_config 'ssl' "${sslConfigKeys[@]}"
else
- rabbitConfig+=(
- "{ tcp_listeners, $(rabbit_array 5672) }"
- "{ ssl_listeners, $(rabbit_array) }"
- )
+ rabbit_set_config 'listeners.tcp.default' 5672
fi
- IFS=$'\n'
- rabbitConfig+=( $(rabbit_env_config '' "${rabbitConfigKeys[@]}") )
- unset IFS
-
- fullConfig+=( "{ rabbit, $(rabbit_array "${rabbitConfig[@]}") }" )
+ rabbit_env_config '' "${rabbitConfigKeys[@]}"
# if management plugin is installed, generate config for it
# https://www.rabbitmq.com/management.html#configuration
if [ "$(rabbitmq-plugins list -m -e rabbitmq_management)" ]; then
- rabbitManagementConfig=()
-
if [ "$haveManagementSslConfig" ]; then
- IFS=$'\n'
- rabbitManagementSslOptions=( $(rabbit_env_config 'management_ssl' "${sslConfigKeys[@]}") )
- unset IFS
-
- rabbitManagementListenerConfig+=(
- '{ port, 15671 }'
- '{ ssl, true }'
- "{ ssl_opts, $(rabbit_array "${rabbitManagementSslOptions[@]}") }"
- )
+ rabbit_set_config 'management.listener.port' 15671
+ rabbit_set_config 'management.listener.ssl' 'true'
+ rabbit_env_config 'management_ssl' "${sslConfigKeys[@]}"
else
- rabbitManagementListenerConfig+=(
- '{ port, 15672 }'
- '{ ssl, false }'
- )
+ rabbit_set_config 'management.listener.port' 15672
+ rabbit_set_config 'management.listener.ssl' 'false'
fi
- rabbitManagementConfig+=(
- "{ listener, $(rabbit_array "${rabbitManagementListenerConfig[@]}") }"
- )
# if definitions file exists, then load it
# https://www.rabbitmq.com/management.html#load-definitions
managementDefinitionsFile='/etc/rabbitmq/definitions.json'
- if [ -f "${managementDefinitionsFile}" ]; then
+ if [ -f "$managementDefinitionsFile" ]; then
# see also https://github.com/docker-library/rabbitmq/pull/112#issuecomment-271485550
- rabbitManagementConfig+=(
- "{ load_definitions, \"$managementDefinitionsFile\" }"
- )
+ rabbit_set_config 'management.load_definitions' "$managementDefinitionsFile"
fi
-
- fullConfig+=(
- "{ rabbitmq_management, $(rabbit_array "${rabbitManagementConfig[@]}") }"
- )
fi
-
- echo "$(rabbit_array "${fullConfig[@]}")." > /etc/rabbitmq/rabbitmq.config
fi
combinedSsl='/tmp/combined.pem'
diff --git a/rabbitmq_latest/Dockerfile b/rabbitmq_latest/Dockerfile
index 7b37bb1..c52ec77 100644
--- a/rabbitmq_latest/Dockerfile
+++ b/rabbitmq_latest/Dockerfile
@@ -1,6 +1,6 @@
FROM debian:stretch-slim
-RUN set -ex; \
+RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
gnupg \
@@ -13,20 +13,55 @@ RUN groupadd -r rabbitmq && useradd -r -d /var/lib/rabbitmq -m -g rabbitmq rabbi
# grab gosu for easy step-down from root
ENV GOSU_VERSION 1.10
-RUN set -x \
- && apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \
- && 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 -rf "$GNUPGHOME" /usr/local/bin/gosu.asc \
- && chmod +x /usr/local/bin/gosu \
- && gosu nobody true \
- && apt-get purge -y --auto-remove ca-certificates wget
+RUN set -eux; \
+ \
+ fetchDeps=' \
+ ca-certificates \
+ wget \
+ '; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends $fetchDeps; \
+ rm -rf /var/lib/apt/lists/*; \
+ \
+ dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \
+ wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \
+ wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \
+ \
+# verify the signature
+ 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 -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
+ \
+ chmod +x /usr/local/bin/gosu; \
+# verify that the binary works
+ gosu nobody true; \
+ \
+ apt-get purge -y --auto-remove $fetchDeps
+
+# RabbitMQ 3.6.15+ requires Erlang 19.3+ (and Stretch only has 19.2); https://www.rabbitmq.com/which-erlang.html
+# so we'll pull Erlang from Buster instead (not using Erlang Solutions since their multiarch support is extremely limited)
+RUN set -eux; \
+# add buster sources.list
+ sed 's/stretch/buster/g' /etc/apt/sources.list \
+ | tee /etc/apt/sources.list.d/buster.list; \
+# update apt-preferences such that we get only erlang* from buster (and erlang* only from buster)
+ { \
+ echo 'Package: *'; \
+ echo 'Pin: release n=buster*'; \
+ echo 'Pin-Priority: -10'; \
+ echo; \
+ echo 'Package: erlang*'; \
+ echo 'Pin: release n=buster*'; \
+ echo 'Pin-Priority: 999'; \
+ echo; \
+ echo 'Package: erlang*'; \
+ echo 'Pin: release n=stretch*'; \
+ echo 'Pin-Priority: -10'; \
+ } | tee /etc/apt/preferences.d/buster-erlang
# install Erlang
-RUN set -ex; \
+RUN set -eux; \
apt-get update; \
# "erlang-base-hipe" is optional (and only supported on a few arches)
# so, only install it if it's available for our current arch
@@ -60,11 +95,11 @@ ENV PATH /usr/lib/rabbitmq/bin:$PATH
# gpg: key 6026DFCA: public key "RabbitMQ Release Signing Key <info@rabbitmq.com>" imported
ENV RABBITMQ_GPG_KEY 0A9AF2115F4687BD29803A206B73A36E6026DFCA
-ENV RABBITMQ_VERSION 3.6.14
-ENV RABBITMQ_GITHUB_TAG rabbitmq_v3_6_14
-ENV RABBITMQ_DEBIAN_VERSION 3.6.14-1
+ENV RABBITMQ_VERSION 3.7.0
+ENV RABBITMQ_GITHUB_TAG v3.7.0
+ENV RABBITMQ_DEBIAN_VERSION 3.7.0-1
-RUN set -ex; \
+RUN set -eux; \
\
apt-get update; \
apt-get install -y --no-install-recommends ca-certificates wget; \
@@ -85,6 +120,9 @@ RUN set -ex; \
\
rm -rf /var/lib/apt/lists/*
+# warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell)
+ENV LANG C.UTF-8
+
# set home so that any `--user` knows where to put the erlang cookie
ENV HOME /var/lib/rabbitmq
diff --git a/rabbitmq_latest/docker-entrypoint.sh b/rabbitmq_latest/docker-entrypoint.sh
index 3f78ac0..4c8fa3d 100755
--- a/rabbitmq_latest/docker-entrypoint.sh
+++ b/rabbitmq_latest/docker-entrypoint.sh
@@ -156,7 +156,7 @@ for conf in "${!configDefaults[@]}"; do
eval "export $var=\"\$default\""
done
-# If long & short hostnames are not the same, use long hostnames
+# if long and short hostnames are not the same, use long hostnames
if [ "$(hostname)" != "$(hostname -s)" ]; then
: "${RABBITMQ_USE_LONGNAME:=true}"
fi
@@ -175,87 +175,92 @@ if [ "${RABBITMQ_ERLANG_COOKIE:-}" ]; then
chmod 600 "$cookieFile"
fi
-# 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'
+configBase="${RABBITMQ_CONFIG_FILE:-/etc/rabbitmq/rabbitmq}"
+oldConfigFile="$configBase.config"
+newConfigFile="$configBase.conf"
+
+shouldWriteConfig="$haveConfig"
+if [ -n "$shouldWriteConfig" ] && [ -f "$oldConfigFile" ]; then
+ {
+ echo "error: Docker configuration environment variables specified, but old-style (Erlang syntax) configuration file '$oldConfigFile' exists"
+ echo " Suggested fixes: (choose one)"
+ echo " - remove '$oldConfigFile'"
+ echo " - remove any Docker-specific 'RABBITMQ_...' environment variables"
+ echo " - convert '$oldConfigFile' to the newer sysctl format ('$newConfigFile'); see https://www.rabbitmq.com/configure.html#config-file"
+ } >&2
+ exit 1
+fi
+if [ -z "$shouldWriteConfig" ] && [ ! -f "$oldConfigFile" ] && [ ! -f "$newConfigFile" ]; then
+ # no config files, we should write one
+ shouldWriteConfig=1
+fi
+
+# http://stackoverflow.com/a/2705678/433558
+sed_escape_lhs() {
+ echo "$@" | sed -e 's/[]\/$*.^|[]/\\&/g'
}
-rabbit_array() {
- echo -n '['
- case "$#" in
- 0) echo -n ' ' ;;
- 1) echo -n " $1 " ;;
- *)
- local vals="$(join $',\n' "$@")"
- echo
- indent "$vals"
- esac
- echo -n ']'
+sed_escape_rhs() {
+ echo "$@" | sed -e 's/[\/&]/\\&/g'
}
-rabbit_string() {
+rabbit_set_config() {
+ local key="$1"; shift
local val="$1"; shift
- # fire up erlang directly to have it do the proper escaping for us
- erl -noinput -eval 'io:format("~p\n", init:get_plain_arguments()), init:stop().' -- "$val"
+
+ [ -e "$newConfigFile" ] || touch "$newConfigFile"
+
+ local sedKey="$(sed_escape_lhs "$key")"
+ local sedVal="$(sed_escape_rhs "$val")"
+ sed -ri \
+ "s/^[[:space:]]*(${sedKey}[[:space:]]*=[[:space:]]*)\S.*\$/\1${sedVal}/" \
+ "$newConfigFile"
+ if ! grep -qE "^${sedKey}[[:space:]]*=" "$newConfigFile"; then
+ echo "$key = $val" >> "$newConfigFile"
+ fi
+}
+rabbit_comment_config() {
+ local key="$1"; shift
+
+ [ -e "$newConfigFile" ] || touch "$newConfigFile"
+
+ local sedKey="$(sed_escape_lhs "$key")"
+ sed -ri \
+ "s/^[[:space:]]*#?[[:space:]]*(${sedKey}[[:space:]]*=[[:space:]]*\S.*)\$/# \1/" \
+ "$newConfigFile"
}
rabbit_env_config() {
local prefix="$1"; shift
- local ret=()
local conf
for conf; do
local var="rabbitmq${prefix:+_$prefix}_$conf"
var="${var^^}"
- local val="${!var:-}"
+ local key="$conf"
+ case "$prefix" in
+ ssl) key="ssl_options.$key" ;;
+ management_ssl) key="management.listener.ssl_opts.$key" ;;
+ esac
- local rawVal=
+ local val="${!var:-}"
+ local rawVal="$val"
case "$conf" in
- verify|fail_if_no_peer_cert|depth)
- [ "$val" ] || continue
- rawVal="$val"
- ;;
-
- hipe_compile)
- [ "$val" ] && rawVal='true' || rawVal='false'
- ;;
-
- cacertfile|certfile|keyfile)
- [ "$val" ] || continue
- rawVal="$(rabbit_string "$val")"
+ verify|fail_if_no_peer_cert|depth|hipe_compile)
+ [ -n "$val" ] && rawVal='true' || rawVal='false'
;;
- *)
- [ "$val" ] || continue
- rawVal="<<$(rabbit_string "$val")>>"
- ;;
+ vm_memory_high_watermark) continue ;; # handled separately
esac
- [ "$rawVal" ] || continue
- ret+=( "{ $conf, $rawVal }" )
+ if [ -n "$rawVal" ]; then
+ rabbit_set_config "$key" "$rawVal"
+ else
+ rabbit_comment_config "$key"
+ fi
done
-
- join $'\n' "${ret[@]}"
}
-shouldWriteConfig="$haveConfig"
-if [ ! -f /etc/rabbitmq/rabbitmq.config ]; then
- shouldWriteConfig=1
-fi
-
if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
- fullConfig=()
-
- rabbitConfig=(
- "{ loopback_users, $(rabbit_array) }"
- )
+ rabbit_set_config 'loopback_users.guest' 'false'
# determine whether to set "vm_memory_high_watermark" (based on cgroups)
memTotalKb=
@@ -277,12 +282,14 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
if [ -n "$memLimitB" ]; then
# if we have a cgroup memory limit, let's inform RabbitMQ of what it is (so it can calculate vm_memory_high_watermark properly)
# https://github.com/rabbitmq/rabbitmq-server/pull/1234
- rabbitConfig+=( "{ total_memory_available_override_value, $memLimitB }" )
+ :# TODO rabbit_set_config 'total_memory_available_override_value' "$memLimitB"
+ # TODO https://github.com/rabbitmq/rabbitmq-server/issues/1445 (missing in 3.7.0)
fi
+ # https://www.rabbitmq.com/memory.html#memsup-usage
if [ "${RABBITMQ_VM_MEMORY_HIGH_WATERMARK:-}" ]; then
# https://github.com/docker-library/rabbitmq/pull/105#issuecomment-242165822
vmMemoryHighWatermark="$(
- awk '
+ echo "$RABBITMQ_VM_MEMORY_HIGH_WATERMARK" | awk '
/^[0-9]*[.][0-9]+$|^[0-9]+([.][0-9]+)?%$/ {
perc = $0;
if (perc ~ /%$/) {
@@ -293,93 +300,64 @@ if [ "$1" = 'rabbitmq-server' ] && [ "$shouldWriteConfig" ]; then
printf "error: invalid percentage for vm_memory_high_watermark: %s (must be > 0%%, <= 100%%)\n", $0 > "/dev/stderr";
exit 1;
}
- printf "%0.03f\n", perc;
+ printf "vm_memory_high_watermark.relative %0.03f\n", perc;
next;
}
/^[0-9]+$/ {
- printf "{ absolute, %s }\n", $0;
+ printf "vm_memory_high_watermark.absolute %s\n", $0;
next;
}
/^[0-9]+([.][0-9]+)?[a-zA-Z]+$/ {
- printf "{ absolute, \"%s\" }\n", $0;
+ printf "vm_memory_high_watermark.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")
+ '
)"
if [ "$vmMemoryHighWatermark" ]; then
- # https://www.rabbitmq.com/memory.html#memsup-usage
- rabbitConfig+=( "{ vm_memory_high_watermark, $vmMemoryHighWatermark }" )
+ vmMemoryHighWatermarkKey="${vmMemoryHighWatermark%% *}"
+ vmMemoryHighWatermarkVal="${vmMemoryHighWatermark#$vmMemoryHighWatermarkKey }"
+ rabbit_set_config "$vmMemoryHighWatermarkKey" "$vmMemoryHighWatermarkVal"
+ case "$vmMemoryHighWatermarkKey" in
+ # make sure we only set one or the other
+ 'vm_memory_high_watermark.absolute') rabbit_comment_config 'vm_memory_high_watermark.relative' ;;
+ 'vm_memory_high_watermark.relative') rabbit_comment_config 'vm_memory_high_watermark.absolute' ;;
+ esac
fi
fi
if [ "$haveSslConfig" ]; then
- IFS=$'\n'
- rabbitSslOptions=( $(rabbit_env_config 'ssl' "${sslConfigKeys[@]}") )
- unset IFS
-
- rabbitConfig+=(
- "{ tcp_listeners, $(rabbit_array) }"
- "{ ssl_listeners, $(rabbit_array 5671) }"
- "{ ssl_options, $(rabbit_array "${rabbitSslOptions[@]}") }"
- )
+ rabbit_set_config 'listeners.ssl.default' 5671
+ rabbit_env_config 'ssl' "${sslConfigKeys[@]}"
else
- rabbitConfig+=(
- "{ tcp_listeners, $(rabbit_array 5672) }"
- "{ ssl_listeners, $(rabbit_array) }"
- )
+ rabbit_set_config 'listeners.tcp.default' 5672
fi
- IFS=$'\n'
- rabbitConfig+=( $(rabbit_env_config '' "${rabbitConfigKeys[@]}") )
- unset IFS
-
- fullConfig+=( "{ rabbit, $(rabbit_array "${rabbitConfig[@]}") }" )
+ rabbit_env_config '' "${rabbitConfigKeys[@]}"
# if management plugin is installed, generate config for it
# https://www.rabbitmq.com/management.html#configuration
if [ "$(rabbitmq-plugins list -m -e rabbitmq_management)" ]; then
- rabbitManagementConfig=()
-
if [ "$haveManagementSslConfig" ]; then
- IFS=$'\n'
- rabbitManagementSslOptions=( $(rabbit_env_config 'management_ssl' "${sslConfigKeys[@]}") )
- unset IFS
-
- rabbitManagementListenerConfig+=(
- '{ port, 15671 }'
- '{ ssl, true }'
- "{ ssl_opts, $(rabbit_array "${rabbitManagementSslOptions[@]}") }"
- )
+ rabbit_set_config 'management.listener.port' 15671
+ rabbit_set_config 'management.listener.ssl' 'true'
+ rabbit_env_config 'management_ssl' "${sslConfigKeys[@]}"
else
- rabbitManagementListenerConfig+=(
- '{ port, 15672 }'
- '{ ssl, false }'
- )
+ rabbit_set_config 'management.listener.port' 15672
+ rabbit_set_config 'management.listener.ssl' 'false'
fi
- rabbitManagementConfig+=(
- "{ listener, $(rabbit_array "${rabbitManagementListenerConfig[@]}") }"
- )
# if definitions file exists, then load it
# https://www.rabbitmq.com/management.html#load-definitions
managementDefinitionsFile='/etc/rabbitmq/definitions.json'
- if [ -f "${managementDefinitionsFile}" ]; then
+ if [ -f "$managementDefinitionsFile" ]; then
# see also https://github.com/docker-library/rabbitmq/pull/112#issuecomment-271485550
- rabbitManagementConfig+=(
- "{ load_definitions, \"$managementDefinitionsFile\" }"
- )
+ rabbit_set_config 'management.load_definitions' "$managementDefinitionsFile"
fi
-
- fullConfig+=(
- "{ rabbitmq_management, $(rabbit_array "${rabbitManagementConfig[@]}") }"
- )
fi
-
- echo "$(rabbit_array "${fullConfig[@]}")." > /etc/rabbitmq/rabbitmq.config
fi
combinedSsl='/tmp/combined.pem'
diff --git a/rabbitmq_management-alpine/Dockerfile b/rabbitmq_management-alpine/Dockerfile
index 578f07c..22bbaf8 100644
--- a/rabbitmq_management-alpine/Dockerfile
+++ b/rabbitmq_management-alpine/Dockerfile
@@ -1,27 +1,5 @@
-FROM rabbitmq:3.6-alpine
+FROM rabbitmq:3.7-alpine
RUN rabbitmq-plugins enable --offline rabbitmq_management
-# extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile
-# see https://github.com/docker-library/rabbitmq/issues/207
-RUN set -eux; \
- erl -noinput -eval ' \
- { ok, AdminBin } = zip:foldl(fun(FileInArchive, GetInfo, GetBin, Acc) -> \
- case Acc of \
- "" -> \
- case lists:suffix("/rabbitmqadmin", FileInArchive) of \
- true -> GetBin(); \
- false -> Acc \
- end; \
- _ -> Acc \
- end \
- end, "", init:get_plain_arguments()), \
- io:format("~s", [ AdminBin ]), \
- init:stop(). \
- ' -- /plugins/rabbitmq_management-*.ez > /usr/local/bin/rabbitmqadmin; \
- [ -s /usr/local/bin/rabbitmqadmin ]; \
- chmod +x /usr/local/bin/rabbitmqadmin; \
- apk add --no-cache python; \
- rabbitmqadmin --version
-
EXPOSE 15671 15672
diff --git a/rabbitmq_management/Dockerfile b/rabbitmq_management/Dockerfile
index dcb3d0a..99cacc6 100644
--- a/rabbitmq_management/Dockerfile
+++ b/rabbitmq_management/Dockerfile
@@ -1,29 +1,5 @@
-FROM rabbitmq:3.6
+FROM rabbitmq:3.7
RUN rabbitmq-plugins enable --offline rabbitmq_management
-# extract "rabbitmqadmin" from inside the "rabbitmq_management-X.Y.Z.ez" plugin zipfile
-# see https://github.com/docker-library/rabbitmq/issues/207
-RUN set -eux; \
- erl -noinput -eval ' \
- { ok, AdminBin } = zip:foldl(fun(FileInArchive, GetInfo, GetBin, Acc) -> \
- case Acc of \
- "" -> \
- case lists:suffix("/rabbitmqadmin", FileInArchive) of \
- true -> GetBin(); \
- false -> Acc \
- end; \
- _ -> Acc \
- end \
- end, "", init:get_plain_arguments()), \
- io:format("~s", [ AdminBin ]), \
- init:stop(). \
- ' -- /plugins/rabbitmq_management-*.ez > /usr/local/bin/rabbitmqadmin; \
- [ -s /usr/local/bin/rabbitmqadmin ]; \
- chmod +x /usr/local/bin/rabbitmqadmin; \
- apt-get update; \
- apt-get install -y --no-install-recommends python; \
- rm -rf /var/lib/apt/lists/*; \
- rabbitmqadmin --version
-
EXPOSE 15671 15672
diff --git a/ruby_rc-alpine3.6/Dockerfile b/ruby_rc-alpine3.6/Dockerfile
deleted file mode 100644
index f3c061c..0000000 |
Member
|
Build test of #3795; af70af8; $ bashbrew build bash:4.4.12
Building bashbrew/cache:ff70cd578e8a04cd31020ba831c7a4b72df53f4720fa90f4f0c0ec0a65aa15e4 (bash:4.4.12)
Tagging bash:4.4.12
Tagging bash:4.4
Tagging bash:4
Tagging bash:latest
$ test/run.sh bash:4.4.12
testing bash:4.4.12
'utc' [1/4]...passed
'cve-2014--shellshock' [2/4]...passed
'no-hard-coded-passwords' [3/4]...passed
'override-cmd' [4/4]...passed
$ bashbrew build bash:4.3.48
Building bashbrew/cache:a23e4bdd3f263deb59d0d5ad5fa0ba3476d9d1e5ad55e9fc4379c2f1cf3d2643 (bash:4.3.48)
Tagging bash:4.3.48
Tagging bash:4.3
$ test/run.sh bash:4.3.48
testing bash:4.3.48
'utc' [1/4]...passed
'cve-2014--shellshock' [2/4]...passed
'no-hard-coded-passwords' [3/4]...passed
'override-cmd' [4/4]...passed
$ bashbrew build bash:4.2.53
Building bashbrew/cache:b81535cd9edf7f20ac0c8b6ae68c4b006157af70e6c1ae71e8f380783d117d9e (bash:4.2.53)
Tagging bash:4.2.53
Tagging bash:4.2
$ test/run.sh bash:4.2.53
testing bash:4.2.53
'utc' [1/4]...passed
'cve-2014--shellshock' [2/4]...passed
'no-hard-coded-passwords' [3/4]...passed
'override-cmd' [4/4]...passed
$ bashbrew build bash:4.1.17
Building bashbrew/cache:3635651d6b217bd19035f1df9da80688bb2ab883ce86720ee2063a32e8a25593 (bash:4.1.17)
Tagging bash:4.1.17
Tagging bash:4.1
$ test/run.sh bash:4.1.17
testing bash:4.1.17
'utc' [1/4]...passed
'cve-2014--shellshock' [2/4]...passed
'no-hard-coded-passwords' [3/4]...passed
'override-cmd' [4/4]...passed
$ bashbrew build bash:4.0.44
Building bashbrew/cache:1ead90ae0586783c378a0ae4c84fdfde54573a4991ddc07a66bc1e8c7bcd0687 (bash:4.0.44)
Tagging bash:4.0.44
Tagging bash:4.0
$ test/run.sh bash:4.0.44
testing bash:4.0.44
'utc' [1/4]...passed
'cve-2014--shellshock' [2/4]...passed
'no-hard-coded-passwords' [3/4]...passed
'override-cmd' [4/4]...passed
$ bashbrew build bash:3.2.57
Building bashbrew/cache:41f2cd7e8ecbf7b127ba611d09b8d51daf4f6826162caf2b257fcdb302e95b9d (bash:3.2.57)
Tagging bash:3.2.57
Tagging bash:3.2
Tagging bash:3
$ test/run.sh bash:3.2.57
testing bash:3.2.57
'utc' [1/4]...passed
'cve-2014--shellshock' [2/4]...passed
'no-hard-coded-passwords' [3/4]...passed
'override-cmd' [4/4]...passed
$ bashbrew build bash:3.1.23
Building bashbrew/cache:7d181b11cfb83bd78d501f9974fce16c54660c9464a102871920f3f808a42ea6 (bash:3.1.23)
Tagging bash:3.1.23
Tagging bash:3.1
$ test/run.sh bash:3.1.23
testing bash:3.1.23
'utc' [1/4]...passed
'cve-2014--shellshock' [2/4]...passed
'no-hard-coded-passwords' [3/4]...passed
'override-cmd' [4/4]...passed
$ bashbrew build bash:3.0.22
Building bashbrew/cache:c4daefc4fb38821e0bc7ca1010f69c1f62ca4648505d14b8a26025ad194ee951 (bash:3.0.22)
Tagging bash:3.0.22
Tagging bash:3.0
$ test/run.sh bash:3.0.22
testing bash:3.0.22
'utc' [1/4]...passed
'cve-2014--shellshock' [2/4]...passed
'no-hard-coded-passwords' [3/4]...passed
'override-cmd' [4/4]...passed
$ bashbrew build golang:1.10beta1-stretch
Using bashbrew/cache:aa33214539a9d07052dcc1d9961dbc8eca358941192c7112371c2fad3d3f7b63 (golang:1.10beta1-stretch)
Tagging golang:1.10beta1-stretch
Tagging golang:1.10-rc-stretch
Tagging golang:rc-stretch
Tagging golang:1.10beta1
Tagging golang:1.10-rc
Tagging golang:rc
$ test/run.sh golang:1.10beta1-stretch
testing golang:1.10beta1-stretch
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'golang-hello-world' [5/5]...passed
$ bashbrew build golang:1.10beta1-alpine3.7
Using bashbrew/cache:63c19439140e4b6c6e0b03d55c4eb685b31981dfa1f0134d4ca53bfa4c512049 (golang:1.10beta1-alpine3.7)
Tagging golang:1.10beta1-alpine3.7
Tagging golang:1.10-rc-alpine3.7
Tagging golang:rc-alpine3.7
Tagging golang:1.10beta1-alpine
Tagging golang:1.10-rc-alpine
Tagging golang:rc-alpine
$ test/run.sh golang:1.10beta1-alpine3.7
testing golang:1.10beta1-alpine3.7
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'golang-hello-world' [5/5]...passed
$ bashbrew build golang:1.10beta1-windowsservercore-ltsc2016
skipping "golang:1.10beta1-windowsservercore-ltsc2016" (due to architecture "amd64"; only "windows-amd64" supported)
$ test/run.sh golang:1.10beta1-windowsservercore-ltsc2016
testing golang:1.10beta1-windowsservercore-ltsc2016
image does not exist!
$ bashbrew build golang:1.10beta1-windowsservercore-1709
skipping "golang:1.10beta1-windowsservercore-1709" (due to architecture "amd64"; only "windows-amd64" supported)
$ test/run.sh golang:1.10beta1-windowsservercore-1709
testing golang:1.10beta1-windowsservercore-1709
image does not exist!
$ bashbrew build golang:1.10beta1-nanoserver-sac2016
skipping "golang:1.10beta1-nanoserver-sac2016" (due to architecture "amd64"; only "windows-amd64" supported)
$ test/run.sh golang:1.10beta1-nanoserver-sac2016
testing golang:1.10beta1-nanoserver-sac2016
image does not exist!
$ bashbrew build golang:1.9.2-stretch
Using bashbrew/cache:a4bcf94813bea663b4682a3252f09f44937a03d3dae0267d8be7e9109dbe14f0 (golang:1.9.2-stretch)
Tagging golang:1.9.2-stretch
Tagging golang:1.9-stretch
Tagging golang:1-stretch
Tagging golang:stretch
Tagging golang:1.9.2
Tagging golang:1.9
Tagging golang:1
Tagging golang:latest
$ test/run.sh golang:1.9.2-stretch
testing golang:1.9.2-stretch
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'golang-hello-world' [5/5]...passed
$ bashbrew build golang:1.9.2-alpine3.7
Building bashbrew/cache:82a9b38c8e300f0d3f432ef76aa4e32e6b5b9d389f0558706c380adf84a77ffe (golang:1.9.2-alpine3.7)
Tagging golang:1.9.2-alpine3.7
Tagging golang:1.9-alpine3.7
Tagging golang:1-alpine3.7
Tagging golang:alpine3.7
$ test/run.sh golang:1.9.2-alpine3.7
testing golang:1.9.2-alpine3.7
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'golang-hello-world' [5/5]...passed
$ bashbrew build golang:1.9.2-alpine3.6
Using bashbrew/cache:a9532af9f9f6075971026696b8d53d465f51d74f4ae5f60b75629b4dcf6e6d94 (golang:1.9.2-alpine3.6)
Tagging golang:1.9.2-alpine3.6
Tagging golang:1.9-alpine3.6
Tagging golang:1-alpine3.6
Tagging golang:alpine3.6
Tagging golang:1.9.2-alpine
Tagging golang:1.9-alpine
Tagging golang:1-alpine
Tagging golang:alpine
$ test/run.sh golang:1.9.2-alpine3.6
testing golang:1.9.2-alpine3.6
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'golang-hello-world' [5/5]...passed
$ bashbrew build golang:1.9.2-windowsservercore-ltsc2016
skipping "golang:1.9.2-windowsservercore-ltsc2016" (due to architecture "amd64"; only "windows-amd64" supported)
$ test/run.sh golang:1.9.2-windowsservercore-ltsc2016
testing golang:1.9.2-windowsservercore-ltsc2016
image does not exist!
$ bashbrew build golang:1.9.2-windowsservercore-1709
skipping "golang:1.9.2-windowsservercore-1709" (due to architecture "amd64"; only "windows-amd64" supported)
$ test/run.sh golang:1.9.2-windowsservercore-1709
testing golang:1.9.2-windowsservercore-1709
image does not exist!
$ bashbrew build golang:1.9.2-nanoserver-sac2016
skipping "golang:1.9.2-nanoserver-sac2016" (due to architecture "amd64"; only "windows-amd64" supported)
$ test/run.sh golang:1.9.2-nanoserver-sac2016
testing golang:1.9.2-nanoserver-sac2016
image does not exist!
$ bashbrew build golang:1.8.5-stretch
Using bashbrew/cache:7c222ec155f6f029df0e0af9b9088536b7f4dbb6fcb924d1a0f224f63d2133cb (golang:1.8.5-stretch)
Tagging golang:1.8.5-stretch
Tagging golang:1.8-stretch
$ test/run.sh golang:1.8.5-stretch
testing golang:1.8.5-stretch
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'golang-hello-world' [5/5]...passed
$ bashbrew build golang:1.8.5-jessie
Using bashbrew/cache:8391373d982dfe10ef3ed770ea4bf38e42a195763911348bad7ec58f00a4fe53 (golang:1.8.5-jessie)
Tagging golang:1.8.5-jessie
Tagging golang:1.8-jessie
Tagging golang:1.8.5
Tagging golang:1.8
$ test/run.sh golang:1.8.5-jessie
testing golang:1.8.5-jessie
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'golang-hello-world' [5/5]...passed
$ bashbrew build golang:1.8.5-alpine3.6
Using bashbrew/cache:f4c89c4145c2feaad08b78ce831572ed1e828073d61c2810e595a6c0ecce0cde (golang:1.8.5-alpine3.6)
Tagging golang:1.8.5-alpine3.6
Tagging golang:1.8-alpine3.6
$ test/run.sh golang:1.8.5-alpine3.6
testing golang:1.8.5-alpine3.6
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'golang-hello-world' [5/5]...passed
$ bashbrew build golang:1.8.5-alpine3.5
Using bashbrew/cache:692a2bbb20b41aa1a44a4047fded6d2f3d78e77d5fe1d4ebbe6a330f007697c3 (golang:1.8.5-alpine3.5)
Tagging golang:1.8.5-alpine3.5
Tagging golang:1.8-alpine3.5
Tagging golang:1.8.5-alpine
Tagging golang:1.8-alpine
$ test/run.sh golang:1.8.5-alpine3.5
testing golang:1.8.5-alpine3.5
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'golang-hello-world' [5/5]...passed
$ bashbrew build golang:1.8.5-onbuild
Using bashbrew/cache:2db84e0942177d8099534fee7f1161aeff9c756b4ec7e3774f8baf0a508bc228 (golang:1.8.5-onbuild)
Tagging golang:1.8.5-onbuild
Tagging golang:1.8-onbuild
$ test/run.sh golang:1.8.5-onbuild
testing golang:1.8.5-onbuild
'override-cmd' [1/1]...passed
$ bashbrew build golang:1.8.5-windowsservercore-ltsc2016
skipping "golang:1.8.5-windowsservercore-ltsc2016" (due to architecture "amd64"; only "windows-amd64" supported)
$ test/run.sh golang:1.8.5-windowsservercore-ltsc2016
testing golang:1.8.5-windowsservercore-ltsc2016
image does not exist!
$ bashbrew build golang:1.8.5-windowsservercore-1709
skipping "golang:1.8.5-windowsservercore-1709" (due to architecture "amd64"; only "windows-amd64" supported)
$ test/run.sh golang:1.8.5-windowsservercore-1709
testing golang:1.8.5-windowsservercore-1709
image does not exist!
$ bashbrew build golang:1.8.5-nanoserver-sac2016
skipping "golang:1.8.5-nanoserver-sac2016" (due to architecture "amd64"; only "windows-amd64" supported)
$ test/run.sh golang:1.8.5-nanoserver-sac2016
testing golang:1.8.5-nanoserver-sac2016
image does not exist!
$ bashbrew build rabbitmq:3.7.0
Building bashbrew/cache:372c0772af063d7cb12ab3d40d31b8ca06382fa7e9c6c682657fc7c0c80889db (rabbitmq:3.7.0)
Tagging rabbitmq:3.7.0
Tagging rabbitmq:3.7
Tagging rabbitmq:3
Tagging rabbitmq:latest
$ test/run.sh rabbitmq:3.7.0
testing rabbitmq:3.7.0
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'rabbitmq-basics' [5/5]....passed
$ bashbrew build rabbitmq:3.7.0-management
Building bashbrew/cache:5c48f42ee9a4fe92826269c73d2d315a744407133f3dbb81464c0c3e699e2676 (rabbitmq:3.7.0-management)
Tagging rabbitmq:3.7.0-management
Tagging rabbitmq:3.7-management
Tagging rabbitmq:3-management
Tagging rabbitmq:management
$ test/run.sh rabbitmq:3.7.0-management
testing rabbitmq:3.7.0-management
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'rabbitmq-basics' [5/5].....passed
$ bashbrew build rabbitmq:3.7.0-alpine
Building bashbrew/cache:be6815dab70ff18cac89625e5a5dc6bad32e5b0b840739af3728acc89db78b1a (rabbitmq:3.7.0-alpine)
Tagging rabbitmq:3.7.0-alpine
Tagging rabbitmq:3.7-alpine
Tagging rabbitmq:3-alpine
Tagging rabbitmq:alpine
$ test/run.sh rabbitmq:3.7.0-alpine
testing rabbitmq:3.7.0-alpine
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'rabbitmq-basics' [5/5]....passed
$ bashbrew build rabbitmq:3.7.0-management-alpine
Building bashbrew/cache:206c5066437884a4706d2cf6140e913f441264e296ab623055f7a581aa2eeeaa (rabbitmq:3.7.0-management-alpine)
Tagging rabbitmq:3.7.0-management-alpine
Tagging rabbitmq:3.7-management-alpine
Tagging rabbitmq:3-management-alpine
Tagging rabbitmq:management-alpine
$ test/run.sh rabbitmq:3.7.0-management-alpine
testing rabbitmq:3.7.0-management-alpine
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'rabbitmq-basics' [5/5].....passed
$ bashbrew build rabbitmq:3.6.14
Building bashbrew/cache:25b20d4133a416f068895894e2f2b4a9b0d6bb7a134737472123f024a6889918 (rabbitmq:3.6.14)
Tagging rabbitmq:3.6.14
Tagging rabbitmq:3.6
$ test/run.sh rabbitmq:3.6.14
testing rabbitmq:3.6.14
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'rabbitmq-basics' [5/5]....passed
$ bashbrew build rabbitmq:3.6.14-management
Building bashbrew/cache:e87c1d5748d63bab26ea3a291cb8a57eefb2019e7c5b3a8e1569a90326331996 (rabbitmq:3.6.14-management)
Tagging rabbitmq:3.6.14-management
Tagging rabbitmq:3.6-management
$ test/run.sh rabbitmq:3.6.14-management
testing rabbitmq:3.6.14-management
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'rabbitmq-basics' [5/5].....passed
$ bashbrew build rabbitmq:3.6.14-alpine
Building bashbrew/cache:40b39abfe1bef6d0553ee348496e899fe7cb77399776d0dcb1ca2bcc18f2fa84 (rabbitmq:3.6.14-alpine)
Tagging rabbitmq:3.6.14-alpine
Tagging rabbitmq:3.6-alpine
$ test/run.sh rabbitmq:3.6.14-alpine
testing rabbitmq:3.6.14-alpine
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'rabbitmq-basics' [5/5]........passed
$ bashbrew build rabbitmq:3.6.14-management-alpine
Building bashbrew/cache:dad9d73c9d20fd11ac826237fa8b4dabd2f47278cdff3ba9ff8c4f028e0dad15 (rabbitmq:3.6.14-management-alpine)
Tagging rabbitmq:3.6.14-management-alpine
Tagging rabbitmq:3.6-management-alpine
$ test/run.sh rabbitmq:3.6.14-management-alpine
testing rabbitmq:3.6.14-management-alpine
'utc' [1/5]...passed
'cve-2014--shellshock' [2/5]...passed
'no-hard-coded-passwords' [3/5]...passed
'override-cmd' [4/5]...passed
'rabbitmq-basics' [5/5].....passed
$ bashbrew build ruby:2.5.0-preview1-stretch
Using bashbrew/cache:f29bf841976b3f162c4230802a82a4e79834d6e45368b7f75f7a5a1a6030e057 (ruby:2.5.0-preview1-stretch)
Tagging ruby:2.5.0-preview1-stretch
Tagging ruby:2.5-rc-stretch
Tagging ruby:rc-stretch
Tagging ruby:2.5.0-preview1
Tagging ruby:2.5-rc
Tagging ruby:rc
$ test/run.sh ruby:2.5.0-preview1-stretch
testing ruby:2.5.0-preview1-stretch
'utc' [1/9]...passed
'cve-2014--shellshock' [2/9]...passed
'no-hard-coded-passwords' [3/9]...passed
'override-cmd' [4/9]...passed
'ruby-hello-world' [5/9]...passed
'ruby-standard-libs' [6/9]...passed
'ruby-gems' [7/9]...passed
'ruby-bundler' [8/9]...passed
'ruby-nonroot' [9/9]...passed
$ bashbrew build ruby:2.5.0-preview1-slim-stretch
Building bashbrew/cache:4fa62c65a3f7e3e90bd1b6fc52e5f55ae4d4bb7a77274e54404e788aca424676 (ruby:2.5.0-preview1-slim-stretch)
Tagging ruby:2.5.0-preview1-slim-stretch
Tagging ruby:2.5-rc-slim-stretch
Tagging ruby:rc-slim-stretch
Tagging ruby:2.5.0-preview1-slim
Tagging ruby:2.5-rc-slim
Tagging ruby:rc-slim
$ test/run.sh ruby:2.5.0-preview1-slim-stretch
testing ruby:2.5.0-preview1-slim-stretch
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
$ bashbrew build ruby:2.5.0-preview1-alpine3.7
Using bashbrew/cache:04246281cd11cc5b43e1b09fe1f49e09c16802b9a1c54f85d90b9b79ab48838a (ruby:2.5.0-preview1-alpine3.7)
Tagging ruby:2.5.0-preview1-alpine3.7
Tagging ruby:2.5-rc-alpine3.7
Tagging ruby:rc-alpine3.7
Tagging ruby:2.5.0-preview1-alpine
Tagging ruby:2.5-rc-alpine
Tagging ruby:rc-alpine
$ test/run.sh ruby:2.5.0-preview1-alpine3.7
testing ruby:2.5.0-preview1-alpine3.7
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
$ bashbrew build ruby:2.4.2-stretch
Using bashbrew/cache:673c96913b58a3af6c2132fc6b6c6d1334d60a45abc21e5debf3b2968aa2f5e7 (ruby:2.4.2-stretch)
Tagging ruby:2.4.2-stretch
Tagging ruby:2.4-stretch
Tagging ruby:2-stretch
Tagging ruby:stretch
$ test/run.sh ruby:2.4.2-stretch
testing ruby:2.4.2-stretch
'utc' [1/9]...passed
'cve-2014--shellshock' [2/9]...passed
'no-hard-coded-passwords' [3/9]...passed
'override-cmd' [4/9]...passed
'ruby-hello-world' [5/9]...passed
'ruby-standard-libs' [6/9]...passed
'ruby-gems' [7/9]...passed
'ruby-bundler' [8/9]...passed
'ruby-nonroot' [9/9]...passed
$ bashbrew build ruby:2.4.2-slim-stretch
Building bashbrew/cache:1dc8b5061f4efb0200e9b98af9786a55e597f3f65ba896a55c9b91e96e376b3d (ruby:2.4.2-slim-stretch)
Tagging ruby:2.4.2-slim-stretch
Tagging ruby:2.4-slim-stretch
Tagging ruby:2-slim-stretch
Tagging ruby:slim-stretch
$ test/run.sh ruby:2.4.2-slim-stretch
testing ruby:2.4.2-slim-stretch
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
$ bashbrew build ruby:2.4.2-jessie
Using bashbrew/cache:87f4591dcee39c4c95f2333db7ecf1ccb6afc28fe30c6a00b8b8d6d766c86f8a (ruby:2.4.2-jessie)
Tagging ruby:2.4.2-jessie
Tagging ruby:2.4-jessie
Tagging ruby:2-jessie
Tagging ruby:jessie
Tagging ruby:2.4.2
Tagging ruby:2.4
Tagging ruby:2
Tagging ruby:latest
$ test/run.sh ruby:2.4.2-jessie
testing ruby:2.4.2-jessie
'utc' [1/9]...passed
'cve-2014--shellshock' [2/9]...passed
'no-hard-coded-passwords' [3/9]...passed
'override-cmd' [4/9]...passed
'ruby-hello-world' [5/9]...passed
'ruby-standard-libs' [6/9]...passed
'ruby-gems' [7/9]...passed
'ruby-bundler' [8/9]...passed
'ruby-nonroot' [9/9]...passed
$ bashbrew build ruby:2.4.2-slim-jessie
Building bashbrew/cache:f25da2803eb8f5033e51cc8612be0772f2dbed8bf61001f180bacd1e6dafb7e0 (ruby:2.4.2-slim-jessie)
Tagging ruby:2.4.2-slim-jessie
Tagging ruby:2.4-slim-jessie
Tagging ruby:2-slim-jessie
Tagging ruby:slim-jessie
Tagging ruby:2.4.2-slim
Tagging ruby:2.4-slim
Tagging ruby:2-slim
Tagging ruby:slim
$ test/run.sh ruby:2.4.2-slim-jessie
testing ruby:2.4.2-slim-jessie
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
$ bashbrew build ruby:2.4.2-onbuild
Using bashbrew/cache:a48d4a85ae6d3bda78beb2f66701d8cdc4a42d8159e6f25e54637e9c8e5c33fb (ruby:2.4.2-onbuild)
Tagging ruby:2.4.2-onbuild
Tagging ruby:2.4-onbuild
Tagging ruby:2-onbuild
Tagging ruby:onbuild
$ test/run.sh ruby:2.4.2-onbuild
testing ruby:2.4.2-onbuild
'override-cmd' [1/1]...passed
$ bashbrew build ruby:2.4.2-alpine3.7
Using bashbrew/cache:36bf04255fe91c371ead898bc7db0ef54994c16ccc765eb32c931b49686ca87b (ruby:2.4.2-alpine3.7)
Tagging ruby:2.4.2-alpine3.7
Tagging ruby:2.4-alpine3.7
Tagging ruby:2-alpine3.7
Tagging ruby:alpine3.7
$ test/run.sh ruby:2.4.2-alpine3.7
testing ruby:2.4.2-alpine3.7
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
$ bashbrew build ruby:2.4.2-alpine3.6
Using bashbrew/cache:3ff4b28ebbae944c2acb92a5c9327d3702df3957592ad213868e38d26fc113d6 (ruby:2.4.2-alpine3.6)
Tagging ruby:2.4.2-alpine3.6
Tagging ruby:2.4-alpine3.6
Tagging ruby:2-alpine3.6
Tagging ruby:alpine3.6
$ test/run.sh ruby:2.4.2-alpine3.6
testing ruby:2.4.2-alpine3.6
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
$ bashbrew build ruby:2.4.2-alpine3.4
Using bashbrew/cache:2278639a2f96198f7ab209fc0c428f2afe365b395c4b5586aca69affbc2e06c8 (ruby:2.4.2-alpine3.4)
Tagging ruby:2.4.2-alpine3.4
Tagging ruby:2.4-alpine3.4
Tagging ruby:2-alpine3.4
Tagging ruby:alpine3.4
Tagging ruby:2.4.2-alpine
Tagging ruby:2.4-alpine
Tagging ruby:2-alpine
Tagging ruby:alpine
$ test/run.sh ruby:2.4.2-alpine3.4
testing ruby:2.4.2-alpine3.4
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
$ bashbrew build ruby:2.3.5-jessie
Using bashbrew/cache:4beb6362b0316ba6847502053e516c9674dcc6bb0d20fd68cbe63e51053aa113 (ruby:2.3.5-jessie)
Tagging ruby:2.3.5-jessie
Tagging ruby:2.3-jessie
Tagging ruby:2.3.5
Tagging ruby:2.3
$ test/run.sh ruby:2.3.5-jessie
testing ruby:2.3.5-jessie
'utc' [1/9]...passed
'cve-2014--shellshock' [2/9]...passed
'no-hard-coded-passwords' [3/9]...passed
'override-cmd' [4/9]...passed
'ruby-hello-world' [5/9]...passed
'ruby-standard-libs' [6/9]...passed
'ruby-gems' [7/9]...passed
'ruby-bundler' [8/9]...passed
'ruby-nonroot' [9/9]...passed
$ bashbrew build ruby:2.3.5-slim-jessie
Building bashbrew/cache:39230ea87569c3e904a33548f3303dd1470d69ce19c3ef6ab5e6485fbd40a3fa (ruby:2.3.5-slim-jessie)
Tagging ruby:2.3.5-slim-jessie
Tagging ruby:2.3-slim-jessie
Tagging ruby:2.3.5-slim
Tagging ruby:2.3-slim
$ test/run.sh ruby:2.3.5-slim-jessie
testing ruby:2.3.5-slim-jessie
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
$ bashbrew build ruby:2.3.5-onbuild
Using bashbrew/cache:a692223e7084596c2e58c06701d93bd358c583c3fd5ec292a41fa4a47b34b576 (ruby:2.3.5-onbuild)
Tagging ruby:2.3.5-onbuild
Tagging ruby:2.3-onbuild
$ test/run.sh ruby:2.3.5-onbuild
testing ruby:2.3.5-onbuild
'override-cmd' [1/1]...passed
$ bashbrew build ruby:2.3.5-alpine3.4
Using bashbrew/cache:bba881bbb732d265412e92decf145a5771a028568814dffa3747ce33d66dca87 (ruby:2.3.5-alpine3.4)
Tagging ruby:2.3.5-alpine3.4
Tagging ruby:2.3-alpine3.4
Tagging ruby:2.3.5-alpine
Tagging ruby:2.3-alpine
$ test/run.sh ruby:2.3.5-alpine3.4
testing ruby:2.3.5-alpine3.4
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
$ bashbrew build ruby:2.2.8-jessie
Using bashbrew/cache:82f6f32607054cfa1cf579fbe26d6383dc75d35d3c79f446155efe5daa647ff2 (ruby:2.2.8-jessie)
Tagging ruby:2.2.8-jessie
Tagging ruby:2.2-jessie
Tagging ruby:2.2.8
Tagging ruby:2.2
$ test/run.sh ruby:2.2.8-jessie
testing ruby:2.2.8-jessie
'utc' [1/9]...passed
'cve-2014--shellshock' [2/9]...passed
'no-hard-coded-passwords' [3/9]...passed
'override-cmd' [4/9]...passed
'ruby-hello-world' [5/9]...passed
'ruby-standard-libs' [6/9]...passed
'ruby-gems' [7/9]...passed
'ruby-bundler' [8/9]...passed
'ruby-nonroot' [9/9]...passed
$ bashbrew build ruby:2.2.8-slim-jessie
Building bashbrew/cache:5351a782ab25cda0241fc367d1e44a201e38c8e514b6886286878eaa27ed981c (ruby:2.2.8-slim-jessie)
Tagging ruby:2.2.8-slim-jessie
Tagging ruby:2.2-slim-jessie
Tagging ruby:2.2.8-slim
Tagging ruby:2.2-slim
$ test/run.sh ruby:2.2.8-slim-jessie
testing ruby:2.2.8-slim-jessie
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
$ bashbrew build ruby:2.2.8-onbuild
Using bashbrew/cache:830ee019425c2eacdd2f312ec19c76130cfd380812ce9d5adcbdbd04b415cf45 (ruby:2.2.8-onbuild)
Tagging ruby:2.2.8-onbuild
Tagging ruby:2.2-onbuild
$ test/run.sh ruby:2.2.8-onbuild
testing ruby:2.2.8-onbuild
'override-cmd' [1/1]...passed
$ bashbrew build ruby:2.2.8-alpine3.4
Using bashbrew/cache:f511c27946f3a1d8e125e4ea2a018f4213345141d74f6020de699904bc460379 (ruby:2.2.8-alpine3.4)
Tagging ruby:2.2.8-alpine3.4
Tagging ruby:2.2-alpine3.4
Tagging ruby:2.2.8-alpine
Tagging ruby:2.2-alpine
$ test/run.sh ruby:2.2.8-alpine3.4
testing ruby:2.2.8-alpine3.4
'utc' [1/7]...passed
'cve-2014--shellshock' [2/7]...passed
'no-hard-coded-passwords' [3/7]...passed
'override-cmd' [4/7]...passed
'ruby-hello-world' [5/7]...passed
'ruby-standard-libs' [6/7]...passed
'ruby-nonroot' [7/7]...passed
The following images failed at least one test:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
bash: apply Alpine patch to 4.4 for process substitution hang (Process substitution hangs out on Bash 4.4 tianon/docker-bash#4)golang: addalpine3.7variant of 1.9 (Add golang:1.9-alpine-3.7 golang#192)rabbitmq: add 3.7, which includes a new configuration file format ([WIP] Add 3.7 rabbitmq#197)ruby: remove2.5-rc-alpine3.6variant (superseded by2.5-rc-alpine3.7)