youtubebeat/vendor/github.com/elastic/beats/metricbeat/module/jolokia/_meta/Dockerfile

34 lines
1.4 KiB
Docker

# Tomcat is started to fetch Jolokia metrics from it
FROM java:8-jdk-alpine
ENV TOMCAT_VERSION 7.0.86
ENV TC apache-tomcat-${TOMCAT_VERSION}
ENV JOLOKIA_VERSION 1.5.0
RUN apk update;\
apk add curl
HEALTHCHECK --interval=1s --retries=90 CMD curl -f localhost:8778/jolokia/
EXPOSE 8778
# Prepare a server where jolokia runs in proxy mode
RUN wget http://archive.apache.org/dist/tomcat/tomcat-7/v${TOMCAT_VERSION}/bin/${TC}.tar.gz;\
tar xzf ${TC}.tar.gz -C /usr;\
rm ${TC}.tar.gz;\
sed -i -e 's/Connector port="8080"/Connector port="8778"/g' /usr/${TC}/conf/server.xml;\
wget http://central.maven.org/maven2/org/jolokia/jolokia-war/${JOLOKIA_VERSION}/jolokia-war-${JOLOKIA_VERSION}.war -O /usr/${TC}/webapps/jolokia.war
# JMX setting to request authentication with remote connection
RUN echo "monitorRole QED" >> /usr/lib/jvm/java-1.8-openjdk/jre/lib/management/jmxremote.password;\
echo "controlRole R&D" >> /usr/lib/jvm/java-1.8-openjdk/jre/lib/management/jmxremote.password;\
chmod 600 /usr/lib/jvm/java-1.8-openjdk/jre/lib/management/jmxremote.password
ADD jolokia.xml /usr/${TC}/conf/Catalina/localhost/jolokia.xml
# Start tomcat to accept JMX connection and enable jolokia proxy mode
CMD env CATALINA_OPTS="\
-Dcom.sun.management.jmxremote.port=7091\
-Dcom.sun.management.jmxremote.ssl=false\
-Dcom.sun.management.jmxremote.authenticate=true\
-Dorg.jolokia.jsr160ProxyEnabled=true" /usr/${TC}/bin/catalina.sh run