Skip to content

Commit d2167ae

Browse files
CI: fix TLS test Docker volume mounts
Mount certificates to /certs and only mount the config file to /etc/rabbitmq/rabbitmq.conf instead of the entire directory. This allows RabbitMQ to write its internal files during startup.
1 parent 25ddfcf commit d2167ae

File tree

2 files changed

+21
-32
lines changed

2 files changed

+21
-32
lines changed

.github/workflows/ci.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,11 @@ jobs:
131131
run: |
132132
cat > tests/tls/certs/rabbitmq.conf << 'EOF'
133133
management.ssl.port = 15671
134-
management.ssl.cacertfile = /etc/rabbitmq/certs/ca_certificate.pem
135-
management.ssl.certfile = /etc/rabbitmq/certs/server_certificate.pem
136-
management.ssl.keyfile = /etc/rabbitmq/certs/server_key.pem
137-
management.tcp.port = 15672
134+
management.ssl.cacertfile = /certs/ca_certificate.pem
135+
management.ssl.certfile = /certs/server_certificate.pem
136+
management.ssl.keyfile = /certs/server_key.pem
137+
management.tcp.port = 15672
138+
loopback_users = none
138139
EOF
139140
sed -i 's/^[[:space:]]*//' tests/tls/certs/rabbitmq.conf
140141
echo "Generated config:"
@@ -143,12 +144,11 @@ jobs:
143144
- name: Start RabbitMQ with TLS
144145
run: |
145146
docker run -d --name rabbitmq-tls \
146-
-e RABBITMQ_ERLANG_COOKIE='test-secret-cookie' \
147147
-p 15671:15671 \
148148
-p 15672:15672 \
149149
-p 5672:5672 \
150-
-v ${{ github.workspace }}/tests/tls/certs:/etc/rabbitmq/certs:ro \
151-
-v ${{ github.workspace }}/tests/tls/certs/rabbitmq.conf:/etc/rabbitmq/conf.d/20-tls.conf:ro \
150+
-v ${{ github.workspace }}/tests/tls/certs:/certs:ro \
151+
-v ${{ github.workspace }}/tests/tls/certs/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro \
152152
rabbitmq:${{ matrix.rabbitmq-series }}-management
153153
154154
- name: Wait for RabbitMQ to start

bin/ci/before_build_tls.sh

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -60,39 +60,28 @@ RABBITMQ_CONF="${CERTS_DIR}/rabbitmq.conf"
6060
cat > "${RABBITMQ_CONF}" << 'EOF'
6161
# Enable TLS on management plugin
6262
management.ssl.port = 15671
63-
management.ssl.cacertfile = /etc/rabbitmq/certs/ca_certificate.pem
64-
management.ssl.certfile = /etc/rabbitmq/certs/server_certificate.pem
65-
management.ssl.keyfile = /etc/rabbitmq/certs/server_key.pem
63+
management.ssl.cacertfile = /certs/ca_certificate.pem
64+
management.ssl.certfile = /certs/server_certificate.pem
65+
management.ssl.keyfile = /certs/server_key.pem
6666
6767
# Keep HTTP enabled for other tests
6868
management.tcp.port = 15672
69+
loopback_users = none
6970
EOF
7071

7172
echo "RabbitMQ TLS configuration written to ${RABBITMQ_CONF}"
7273

73-
# If using Docker, copy certificates and configuration to container
74+
# If using Docker, start a container with TLS configuration
7475
if [ -n "$CONTAINER_ID" ]; then
75-
echo "Copying certificates to Docker container ${CONTAINER_ID}..."
76-
77-
docker exec "${CONTAINER_ID}" mkdir -p /etc/rabbitmq/certs
78-
docker cp "${CERTS_DIR}/ca_certificate.pem" "${CONTAINER_ID}:/etc/rabbitmq/certs/"
79-
docker cp "${CERTS_DIR}/server_certificate.pem" "${CONTAINER_ID}:/etc/rabbitmq/certs/"
80-
docker cp "${CERTS_DIR}/server_key.pem" "${CONTAINER_ID}:/etc/rabbitmq/certs/"
81-
docker cp "${RABBITMQ_CONF}" "${CONTAINER_ID}:/etc/rabbitmq/conf.d/20-tls.conf"
82-
83-
# Set proper permissions
84-
docker exec "${CONTAINER_ID}" chmod 644 /etc/rabbitmq/certs/*.pem
85-
docker exec "${CONTAINER_ID}" chmod 600 /etc/rabbitmq/certs/server_key.pem
86-
87-
echo "Restarting RabbitMQ to apply TLS configuration..."
88-
docker exec "${CONTAINER_ID}" rabbitmqctl stop_app
89-
docker exec "${CONTAINER_ID}" rabbitmqctl start_app
90-
91-
sleep 5
92-
93-
# Verify TLS listener is active
94-
echo "Verifying TLS listener..."
95-
docker exec "${CONTAINER_ID}" rabbitmq-diagnostics listeners | grep -E "15671|ssl" || echo "Warning: TLS listener may not be active"
76+
echo "Note: Docker service container ${CONTAINER_ID} detected."
77+
echo "For TLS tests, use a standalone Docker container instead."
78+
echo ""
79+
echo "To start RabbitMQ with TLS manually:"
80+
echo " docker run -d --name rabbitmq-tls \\"
81+
echo " -p 15671:15671 -p 15672:15672 -p 5672:5672 \\"
82+
echo " -v ${CERTS_DIR}:/certs:ro \\"
83+
echo " -v ${RABBITMQ_CONF}:/etc/rabbitmq/rabbitmq.conf:ro \\"
84+
echo " rabbitmq:4.0-management"
9685
fi
9786

9887
# Enable management plugin (should already be enabled in the management image)

0 commit comments

Comments
 (0)