Hi
I have a Solace Container running in Docker (via docker compose) with the following setup:
solace-local:
image: solace/solace-pubsub-standard:9.12.1.17
restart: always
shm_size: 1gb
ulimits:
core: 1
nofile:
soft: 2448
hard: 6592
deploy:
restart_policy:
condition: on-failure
max_attempts: 1
environment:
- username_admin_globalaccesslevel=admin
- username_admin_password=admin
- system_scaling_maxconnectioncount=100
ports:
- “58080:8080” # Solace PubSub+ Broker Manager
- “59000:9000” # REST / SEMP
- “58000:8000” # MQTT over TCP
- “51883:1883” # MQTT over WebSocket
- “55672:5672” # AMQP
- “58008:8008” # JavaScript sample applications
- “55550:55555” # SMF for Windows & Linux
networks:
- solace-config-network
this is a container meant for local development/testing. The developers should not have to configure users, queues, … on their own, so i want to have a file that a dev only has execute once and their solace container is up an ready. My general idea is to create a second container that sends a set of curl requests to solace, both are of course in the same docker network. This is the command the configuration container needs to execute:
solace-config:
image: alpine/curl
networks:
- solace-config-network
depends_on:
- solace-local
command: >
sh -c "
VPN_DATA=‘{“msgVpnName”: “myVpn”}’;
USER_DATA=‘{“clientUsername”: “default”, “password”: “default”}’;
QUEUE_DATA=‘{“queueName”: “myQueue”}’;
curl -i -X POST ‘solace-local:9000/SEMP/v2/config/msgVpns’ -u admin:admin -d “‘%VPN_DATA’”;
curl -i -X POST ‘solace-local:9000/SEMP/v2/config/msgVpns/myVpn/clientUsernames’ -u admin:admin -d “‘%USER_DATA’”;
curl -i -X POST ‘solace-local:9000/SEMP/v2/config/msgVpns/myVpn/queues’ -u admin:admin -d “‘%QUEUE_DATA’”;
echo Solace configured.
"
the configuration container is in the ‘solace-config-network’ (which is defined inthe same docker compose file as well) and everything seems to be fine since every post request returns 200 OK, but when checking the solace gui nothing is created. no vpn, nothing else. I also tried sending these requests via Postman - same response, 200 OK but no body and nothing is created. For the postman request i replace the hostname with localhost and the port with the mapped port. Interestlingly though, when trying to GET http://localhost:59000/SEMP/v2/config/msgVpns/default > via Postman, i receive a 405 Method Not Allowed with the following response body:
405
1:1583
event.log and debug.log from the solace/jail are appended below
what am I missing here? It really bugs me that the requests to create a ressource return a 200 without body, but a GET with a 405 and a body that says “Method Not Allowed”. Any help to configure the container is appreciated.
event.log (71.6 KB)