Skip to content

Commit 624f516

Browse files
Fix RabbitMQ runtime credentials
1 parent 097e0ed commit 624f516

4 files changed

Lines changed: 36 additions & 19 deletions

File tree

docker-compose.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ services:
4444
build:
4545
context: .
4646
dockerfile: ./docker/rabbitmq/Dockerfile
47-
args:
48-
- RABBIT_MQ_DEFAULT_USER=${COLLECTOSS_RABBITMQ_USERNAME:-augur}
49-
- RABBIT_MQ_DEFAULT_PASSWORD=${COLLECTOSS_RABBITMQ_PASSWORD:-password123}
50-
- RABBIT_MQ_DEFAULT_VHOST=${COLLECTOSS_RABBITMQ_VHOST:-collectoss_vhost}
47+
environment:
48+
- RABBIT_MQ_DEFAULT_USER=${COLLECTOSS_RABBITMQ_USERNAME:-augur}
49+
- RABBIT_MQ_DEFAULT_PASSWORD=${COLLECTOSS_RABBITMQ_PASSWORD:-password123}
50+
- RABBIT_MQ_DEFAULT_VHOST=${COLLECTOSS_RABBITMQ_VHOST:-collectoss_vhost}
5151

5252
core:
5353
image: collectoss:latest

docker/rabbitmq/Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,9 @@ LABEL org.opencontainers.image.documentation="https://docs.collectoss.org"
88
ARG VERSION
99
LABEL org.opencontainers.image.version=${VERSION}
1010

11-
ARG RABBIT_MQ_DEFAULT_USER=augur
12-
ARG RABBIT_MQ_DEFAULT_PASSWORD=password123
13-
ARG RABBIT_MQ_DEFAULT_VHOST=collectoss_vhost
14-
1511
COPY --chown=rabbitmq:rabbitmq ./docker/rabbitmq/collectoss.conf /etc/rabbitmq/conf.d/
1612

17-
ADD docker/rabbitmq/definitions.json /etc/rabbitmq/
13+
COPY --chown=rabbitmq:rabbitmq docker/rabbitmq/definitions.json /etc/rabbitmq/
1814

1915
ADD docker/rabbitmq/advanced.config /etc/rabbitmq/
2016
RUN chown rabbitmq:rabbitmq /etc/rabbitmq/advanced.config
@@ -23,7 +19,11 @@ RUN chmod 777 /etc/rabbitmq/conf.d/collectoss.conf
2319

2420
RUN apk add --no-cache python3
2521
COPY docker/rabbitmq/update_config.py /
22+
COPY docker/rabbitmq/docker-entrypoint.sh /collectoss-rabbitmq-entrypoint.sh
2623

27-
RUN exec python3 update_config.py
24+
RUN chmod +x /collectoss-rabbitmq-entrypoint.sh
2825

2926
RUN chown rabbitmq:rabbitmq /etc/rabbitmq/definitions.json
27+
28+
ENTRYPOINT ["/collectoss-rabbitmq-entrypoint.sh"]
29+
CMD ["rabbitmq-server"]
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/sh
2+
set -eu
3+
4+
python3 /update_config.py
5+
exec /usr/local/bin/docker-entrypoint.sh "$@"

docker/rabbitmq/update_config.py

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
11
from os import environ as env
2-
import json, subprocess
2+
import json
3+
import subprocess
34
from pathlib import Path
45

5-
rabbit_user = env.get("RABBIT_MQ_DEFAULT_USER")
6-
rabbit_pass = env.get("RABBIT_MQ_DEFAULT_PASSWORD")
7-
rabbit_vhost = env.get("RABBIT_MQ_DEFAULT_VHOST")
6+
7+
def get_env(*names):
8+
for name in names:
9+
value = env.get(name)
10+
if value:
11+
return value
12+
return None
13+
14+
15+
rabbit_user = get_env("RABBITMQ_DEFAULT_USER", "RABBIT_MQ_DEFAULT_USER")
16+
rabbit_pass = get_env("RABBITMQ_DEFAULT_PASS", "RABBIT_MQ_DEFAULT_PASSWORD")
17+
rabbit_vhost = get_env("RABBITMQ_DEFAULT_VHOST", "RABBIT_MQ_DEFAULT_VHOST")
818

919
if not rabbit_user:
1020
raise ValueError("No default user set")
1121

1222
if not rabbit_pass:
1323
raise ValueError("No default password set")
14-
24+
1525
if not rabbit_vhost:
1626
raise ValueError("No default vhost set")
1727

@@ -20,9 +30,11 @@
2030
with config_file.open() as file:
2131
config = json.load(file)
2232

23-
hash_processor = subprocess.run(f"rabbitmqctl hash_password {rabbit_pass}".split(),
24-
text=True,
25-
stdout=subprocess.PIPE)
33+
hash_processor = subprocess.run(
34+
["rabbitmqctl", "hash_password", rabbit_pass],
35+
text=True,
36+
stdout=subprocess.PIPE,
37+
)
2638

2739
if hash_processor.returncode != 0:
2840
raise Exception("Could not calculate password hash")
@@ -38,4 +50,4 @@
3850
config["permissions"][0]["vhost"] = rabbit_vhost
3951

4052
with config_file.open("w") as file:
41-
json.dump(config, file)
53+
json.dump(config, file)

0 commit comments

Comments
 (0)