postgresql-to-amqp icon indicating copy to clipboard operation
postgresql-to-amqp copied to clipboard

AMQP_HOST_PORT format issue

Open wildsurfer opened this issue 7 years ago • 1 comments

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

wildsurfer avatar May 12 '17 14:05 wildsurfer

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

wildsurfer avatar May 12 '17 15:05 wildsurfer