postgresql-to-amqp
postgresql-to-amqp copied to clipboard
AMQP_HOST_PORT format issue
Hi. I'm experiencing an issue with setting AMQP_HOST_PORT to FQDN instead of IP.
$ docker logs rabbitmqexample_postgresql-to-amqp_1
Finished release [optimized] target(s) in 0.6 secs
Running `target/release/postgresql-to-amqp`
thread 'main' panicked at 'amqp_host_port should be in format '127.0.0.1:5672': AddrParseError(())', /checkout/src/libcore/result.rs:859
note: Run with `RUST_BACKTRACE=1` for a backtrace.
Here is sample docker-compose.yml file to reproduce the issue. Save it and run docker-compose up
and you will see the same error message as above.
version: '2'
services:
postgresql:
image: postgres:9.5.3
ports:
- "5432"
depends_on:
- rabbitmq
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=postgres
- POSTGRES_DATABASE=test
rabbitmq:
image: rabbitmq:3.6.9-alpine
hostname: test-rabbitmq
mem_limit: 256m
ports:
- "5672"
postgresql-to-amqp:
image: fgribreau/postgresql-to-amqp:0.1.3
environment:
- POSTGRESQL_URI="postgresql://postgres:password@postgresql:5432/test"
- POSTGRESQL_CHANNEL="mychannel"
- AMQP_HOST_PORT="rabbitmq:5672"
- AMQP_QUEUE_NAME="myqueue"
depends_on:
- rabbitmq
- postgresql
My workaround for now is to build my own Docker image
Dockerfile:
FROM fgribreau/postgresql-to-amqp:0.1.3
RUN apt-get update && apt-get install -y dnsutils
COPY ./run.sh /root
CMD /root/run.sh
run.sh:
#!/bin/bash
IFS=’:’ read -ra ARR <<< "$AMQP_HOST_PORT"
FQDN_HOST=${ARR[0]}
FQDN_PORT=${ARR[1]}
IP=$(dig +short $FQDN_HOST | awk '{print $1}')
AMQP_HOST_PORT="$IP:$FQDN_PORT"
echo $AMQP_HOST_PORT
echo "Sleeping for 10 seconds. To ensure that rabbitmq already started";
sleep 10
cargo run --release