Skip to content

Commit 4ce15fa

Browse files
committed
Add support for read-only config file mounts
This is a pretty common use-case given that as of Kubernetes v1.9.4 configMaps are mounted as read-only. Fixes #368
1 parent 11b0f43 commit 4ce15fa

File tree

7 files changed

+49
-0
lines changed

7 files changed

+49
-0
lines changed

3.7-rc/alpine/docker-entrypoint.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,13 @@ oldConfigFile="$configBase.config"
202202
newConfigFile="$configBase.conf"
203203

204204
shouldWriteConfig="$haveConfig"
205+
if [ -n "$shouldWriteConfig" ] && [ -f "$newConfigFile" ] && [ ! -w "$newConfigFile" ]; then
206+
# config file exist but it isn't writeable (e.g. Kubernetes v1.9.4+ configMap mount)
207+
tmp="/tmp/rabbitmq.conf"
208+
cat "$newConfigFile" > "${tmp}"
209+
newConfigFile="${tmp}"
210+
export RABBITMQ_CONFIG_FILE="${tmp}"
211+
fi
205212
if [ -n "$shouldWriteConfig" ] && [ -f "$oldConfigFile" ]; then
206213
{
207214
echo "error: Docker configuration environment variables specified, but old-style (Erlang syntax) configuration file '$oldConfigFile' exists"

3.7-rc/ubuntu/docker-entrypoint.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,13 @@ oldConfigFile="$configBase.config"
202202
newConfigFile="$configBase.conf"
203203

204204
shouldWriteConfig="$haveConfig"
205+
if [ -n "$shouldWriteConfig" ] && [ -f "$newConfigFile" ] && [ ! -w "$newConfigFile" ]; then
206+
# config file exist but it isn't writeable (e.g. Kubernetes v1.9.4+ configMap mount)
207+
tmp="/tmp/rabbitmq.conf"
208+
cat "$newConfigFile" > "${tmp}"
209+
newConfigFile="${tmp}"
210+
export RABBITMQ_CONFIG_FILE="${tmp}"
211+
fi
205212
if [ -n "$shouldWriteConfig" ] && [ -f "$oldConfigFile" ]; then
206213
{
207214
echo "error: Docker configuration environment variables specified, but old-style (Erlang syntax) configuration file '$oldConfigFile' exists"

3.7/alpine/docker-entrypoint.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,13 @@ oldConfigFile="$configBase.config"
202202
newConfigFile="$configBase.conf"
203203

204204
shouldWriteConfig="$haveConfig"
205+
if [ -n "$shouldWriteConfig" ] && [ -f "$newConfigFile" ] && [ ! -w "$newConfigFile" ]; then
206+
# config file exist but it isn't writeable (e.g. Kubernetes v1.9.4+ configMap mount)
207+
tmp="/tmp/rabbitmq.conf"
208+
cat "$newConfigFile" > "${tmp}"
209+
newConfigFile="${tmp}"
210+
export RABBITMQ_CONFIG_FILE="${tmp}"
211+
fi
205212
if [ -n "$shouldWriteConfig" ] && [ -f "$oldConfigFile" ]; then
206213
{
207214
echo "error: Docker configuration environment variables specified, but old-style (Erlang syntax) configuration file '$oldConfigFile' exists"

3.7/ubuntu/docker-entrypoint.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,13 @@ oldConfigFile="$configBase.config"
202202
newConfigFile="$configBase.conf"
203203

204204
shouldWriteConfig="$haveConfig"
205+
if [ -n "$shouldWriteConfig" ] && [ -f "$newConfigFile" ] && [ ! -w "$newConfigFile" ]; then
206+
# config file exist but it isn't writeable (e.g. Kubernetes v1.9.4+ configMap mount)
207+
tmp="/tmp/rabbitmq.conf"
208+
cat "$newConfigFile" > "${tmp}"
209+
newConfigFile="${tmp}"
210+
export RABBITMQ_CONFIG_FILE="${tmp}"
211+
fi
205212
if [ -n "$shouldWriteConfig" ] && [ -f "$oldConfigFile" ]; then
206213
{
207214
echo "error: Docker configuration environment variables specified, but old-style (Erlang syntax) configuration file '$oldConfigFile' exists"

3.8-rc/alpine/docker-entrypoint.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,13 @@ oldConfigFile="$configBase.config"
202202
newConfigFile="$configBase.conf"
203203

204204
shouldWriteConfig="$haveConfig"
205+
if [ -n "$shouldWriteConfig" ] && [ -f "$newConfigFile" ] && [ ! -w "$newConfigFile" ]; then
206+
# config file exist but it isn't writeable (e.g. Kubernetes v1.9.4+ configMap mount)
207+
tmp="/tmp/rabbitmq.conf"
208+
cat "$newConfigFile" > "${tmp}"
209+
newConfigFile="${tmp}"
210+
export RABBITMQ_CONFIG_FILE="${tmp}"
211+
fi
205212
if [ -n "$shouldWriteConfig" ] && [ -f "$oldConfigFile" ]; then
206213
{
207214
echo "error: Docker configuration environment variables specified, but old-style (Erlang syntax) configuration file '$oldConfigFile' exists"

3.8-rc/ubuntu/docker-entrypoint.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,13 @@ oldConfigFile="$configBase.config"
202202
newConfigFile="$configBase.conf"
203203

204204
shouldWriteConfig="$haveConfig"
205+
if [ -n "$shouldWriteConfig" ] && [ -f "$newConfigFile" ] && [ ! -w "$newConfigFile" ]; then
206+
# config file exist but it isn't writeable (e.g. Kubernetes v1.9.4+ configMap mount)
207+
tmp="/tmp/rabbitmq.conf"
208+
cat "$newConfigFile" > "${tmp}"
209+
newConfigFile="${tmp}"
210+
export RABBITMQ_CONFIG_FILE="${tmp}"
211+
fi
205212
if [ -n "$shouldWriteConfig" ] && [ -f "$oldConfigFile" ]; then
206213
{
207214
echo "error: Docker configuration environment variables specified, but old-style (Erlang syntax) configuration file '$oldConfigFile' exists"

docker-entrypoint.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,13 @@ oldConfigFile="$configBase.config"
202202
newConfigFile="$configBase.conf"
203203

204204
shouldWriteConfig="$haveConfig"
205+
if [ -n "$shouldWriteConfig" ] && [ -f "$newConfigFile" ] && [ ! -w "$newConfigFile" ]; then
206+
# config file exist but it isn't writeable (e.g. Kubernetes v1.9.4+ configMap mount)
207+
tmp="/tmp/rabbitmq.conf"
208+
cat "$newConfigFile" > "${tmp}"
209+
newConfigFile="${tmp}"
210+
export RABBITMQ_CONFIG_FILE="${tmp}"
211+
fi
205212
if [ -n "$shouldWriteConfig" ] && [ -f "$oldConfigFile" ]; then
206213
{
207214
echo "error: Docker configuration environment variables specified, but old-style (Erlang syntax) configuration file '$oldConfigFile' exists"

0 commit comments

Comments
 (0)