2

I am trying to start ActivemQ with as a Docker images.

This is my ActiveMQ dockerfile

FROM openjdk:8-jre

ENV ACTIVEMQ_VERSION 5.15.9
ENV ACTIVEMQ apache-activemq-$ACTIVEMQ_VERSION
ENV ACTIVEMQ_TCP=61616 ACTIVEMQ_AMQP=5672 ACTIVEMQ_STOMP=61613 ACTIVEMQ_MQTT=1883 ACTIVEMQ_WS=61614 ACTIVEMQ_UI=8161

ENV ACTIVEMQ_HOME /opt/activemq

COPY files/${ACTIVEMQ}-bin.tar.gz /

RUN tar xzf $ACTIVEMQ-bin.tar.gz -C  /opt && \
    ln -s /opt/$ACTIVEMQ $ACTIVEMQ_HOME && \
    useradd -r -M -d $ACTIVEMQ_HOME activemq && \
    chown -R activemq:activemq /opt/$ACTIVEMQ && \
    chown -h activemq:activemq $ACTIVEMQ_HOME && \
    rm -f $ACTIVEMQ-bin.tar.gz

USER activemq

WORKDIR $ACTIVEMQ_HOME
EXPOSE $ACTIVEMQ_TCP $ACTIVEMQ_AMQP $ACTIVEMQ_STOMP $ACTIVEMQ_MQTT $ACTIVEMQ_WS $ACTIVEMQ_UI

CMD ["/bin/sh", "-c", "bin/activemq console"]

I start the docker images with Docker compose.

  activemq:
    image: activemq:5.15.9
    container_name: nita-activemq
    ports:
      - 8161:8161
      - 61616:61616
    healthcheck:
      test: ["CMD-SHELL", "curl -k -f https://localhost:8161/admin"]
      interval: 5s
      timeout: 3s
      retries: 20

The product starts successfully and I can log into the console and work. But it continuously shows the below command in the logs.

nita-activemq |  WARN | badMessage: 400 Illegal character 0x16 for HttpChannelOverHttp@905d5d7{r=0,c=false,a=IDLE,uri=}
nita-activemq |  WARN | Illegal character 0x16 in state=START for buffer HeapByteBuffer@3730f7b0[p=1,l=517,c=16384,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03\x83\x10w\x8c\xE6\xEf\x8e...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}

How to fix this issue?

1 Answers1

0

Your healthcheck test command is polling https://localhost:8161/admin and your Jetty isn't configured to handle correctly the HTTPS requests.

You can either poll the HTTP endpoint instead of the HTTPS, in your compose file healthcheck:

[...]
    healthcheck:
      test: ["CMD-SHELL", "curl -k -f http://localhost:8161/admin"]
      interval: 5s
[...]

or have a look in the /activemq/conf/jetty.xml and setup the correct config for HTTPS, generate certificates, mount them in the container etc. Here is a post on this topic.

Neo Anderson
  • 5,957
  • 2
  • 12
  • 29