diff --git a/README.md b/README.md index 71f4ea8..ecba593 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,15 @@ docker-machine create --driver virtualbox --virtualbox-disk-size "50000" --engin Configure your shell ``` eval "$(docker-machine env docker-vm)" -``` \ No newline at end of file +``` + +To run all containers +``` +docker-compose up -d +``` + +If you plan to use external volumes for hbase you should fill hbase first. +Please run this script inside hbase container +``` +${HBASE_HOME}/bin/hbase shell /opt/hbase/hbase-create.hbase; ${HBASE_HOME}/bin/stop-hbase.sh +``` diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..df36ee5 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,69 @@ +pinpoint-hbase: + container_name: pinpoint-hbase + hostname: hbase + image: dawidmalina/pinpoint-hbase:1.5.2 + restart: always + expose: + - "2181" + - "16010" + ports: + - "2181:2181" + - "16010:16010" + +pinpoint-collector: + container_name: pinpoint-collector + hostname: collector + image: dawidmalina/pinpoint-collector:1.5.2 + restart: always + expose: + - "9994" + - "9995" + - "9996" + ports: + - "9994:9994" + - "9995:9995/tcp" + - "9996:9996/tcp" + - "9995:9995/udp" + - "9996:9996/udp" + environment: + HBASE_HOST: hbase + HBASE_PORT: 2181 + COLLECTOR_TCP_PORT: 9994 + COLLECTOR_UDP_STAT_LISTEN_PORT: 9995 + COLLECTOR_UDP_SPAN_LISTEN_PORT: 9996 + CLUSTER_ENABLE: 'false' + DISABLE_DEBUG: 'true' + links: + - pinpoint-hbase:hbase + +pinpoint-web: + container_name: pinpoint-web + hostname: web + image: dawidmalina/pinpoint-web:1.5.2 + restart: always + expose: + - "8080" + ports: + - "3080:8080" + environment: + HBASE_HOST: hbase + HBASE_PORT: 2181 + CLUSTER_ENABLE: 'false' + ADMIN_PASSWORD: admin123 + DISABLE_DEBUG: 'true' + links: + - pinpoint-hbase:hbase + +# only example +#pinpoint-agent: +# image: dawidmalina/pinpoint-agent:1.5.2 +# net: "none" +# restart: unless-stopped +# volumes: +# - /var/container_data/pinpoint-agent/log:/opt/app/pinpoint-agent/log:rw +# environment: +# COLLECTOR_IP: 192.168.99.100 +# COLLECTOR_TCP_PORT: 9994 +# COLLECTOR_UDP_STAT_LISTEN_PORT: 9995 +# COLLECTOR_UDP_SPAN_LISTEN_PORT: 9996 +# DISABLE_DEBUG: 'true' \ No newline at end of file diff --git a/pinpoint-agent/Dockerfile b/pinpoint-agent/Dockerfile index 72504ad..4e703a2 100644 --- a/pinpoint-agent/Dockerfile +++ b/pinpoint-agent/Dockerfile @@ -2,26 +2,25 @@ # TO_BUILD docker build -t pinpoint-agent . # TO_RUN docker run --name=pinpoint-agent pinpoint-agent -FROM alpine:3.2 +FROM alpine:3.3 -ENV PINPOINT_VERSION=1.5.1 +ENV PINPOINT_VERSION=1.5.2 -ADD configure.sh /configure.sh +ADD configure-agent.sh /usr/local/bin/ RUN apk add --update curl bash \ - && chmod a+x /configure.sh \ - && mkdir -p /opt/app \ - && mkdir -p /assets/ \ + && chmod a+x /usr/local/bin/configure-agent.sh \ + && mkdir -p /assets \ && curl -SL https://raw.githubusercontent.com/naver/pinpoint/$PINPOINT_VERSION/agent/src/main/resources/pinpoint.config -o /assets/pinpoint.config \ && curl -SL https://github.com/naver/pinpoint/releases/download/$PINPOINT_VERSION/pinpoint-agent-$PINPOINT_VERSION.tar.gz -o pinpoint-agent-$PINPOINT_VERSION.tar.gz \ && gunzip pinpoint-agent-$PINPOINT_VERSION.tar.gz \ - && tar -xf pinpoint-agent-$PINPOINT_VERSION.tar -C /opt/app \ - && if test -d /opt/app/pinpoint-agent-$PINPOINT_VERSION; then mv /opt/app/pinpoint-agent-$PINPOINT_VERSION /opt/app/pinpoint-agent; fi \ - && sed -i 's/DEBUG/INFO/' /opt/app/pinpoint-agent/lib/log4j.xml \ + && tar -xf pinpoint-agent-$PINPOINT_VERSION.tar -C /assets \ + && if test -d /assets/pinpoint-agent-$PINPOINT_VERSION; then mv /assets/pinpoint-agent-$PINPOINT_VERSION /assets/pinpoint-agent; fi \ + && sed -i 's/DEBUG/INFO/' /assets/pinpoint-agent/lib/log4j.xml \ && rm pinpoint-agent-$PINPOINT_VERSION.tar \ && apk del curl \ && rm /var/cache/apk/* -VOLUME /opt/app/pinpoint-agent +VOLUME /assets/pinpoint-agent -CMD ["/configure.sh"] +ENTRYPOINT ["/usr/local/bin/configure-agent.sh"] diff --git a/pinpoint-agent/configure-agent.sh b/pinpoint-agent/configure-agent.sh new file mode 100644 index 0000000..ec3ce2f --- /dev/null +++ b/pinpoint-agent/configure-agent.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -e +set -x + +COLLECTOR_IP=${COLLECTOR_IP:-127.0.0.1} +COLLECTOR_TCP_PORT=${COLLECTOR_TCP_PORT:-9994} +COLLECTOR_UDP_STAT_LISTEN_PORT=${COLLECTOR_UDP_STAT_LISTEN_PORT:-9995} +COLLECTOR_UDP_SPAN_LISTEN_PORT=${COLLECTOR_UDP_SPAN_LISTEN_PORT:-9996} + +DISABLE_DEBUG=${DISABLE_DEBUG:-true} + +cp -f /assets/pinpoint.config /assets/pinpoint-agent/pinpoint.config + +sed -i "s/profiler.collector.ip=127.0.0.1/profiler.collector.ip=${COLLECTOR_IP}/g" /assets/pinpoint-agent/pinpoint.config + +sed -i "s/profiler.collector.tcp.port=9994/profiler.collector.tcp.port=${COLLECTOR_TCP_PORT}/g" /assets/pinpoint-agent/pinpoint.config +sed -i "s/profiler.collector.stat.port=9995/profiler.collector.stat.port=${COLLECTOR_UDP_STAT_LISTEN_PORT}/g" /assets/pinpoint-agent/pinpoint.config +sed -i "s/profiler.collector.span.port=9996/profiler.collector.span.port=${COLLECTOR_UDP_SPAN_LISTEN_PORT}/g" /assets/pinpoint-agent/pinpoint.config + +if [ "$DISABLE_DEBUG" == "true" ]; then + sed -i 's/level value="DEBUG"/level value="INFO"/' /assets/pinpoint-agent/lib/log4j.xml +fi diff --git a/pinpoint-agent/configure.sh b/pinpoint-agent/configure.sh deleted file mode 100644 index 29dfc56..0000000 --- a/pinpoint-agent/configure.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set -e -set -x - -COLLECTOR_IP=${COLLECTOR_IP:-} - -cp /assets/pinpoint.config /opt/app/pinpoint-agent/pinpoint.config - -sed -i 's/profiler.collector.ip=127.0.0.1/profiler.collector.ip='"${COLLECTOR_IP}"'/' /opt/app/pinpoint-agent/pinpoint.config diff --git a/pinpoint-collector/Dockerfile b/pinpoint-collector/Dockerfile index af301a7..ffe848b 100644 --- a/pinpoint-collector/Dockerfile +++ b/pinpoint-collector/Dockerfile @@ -4,12 +4,12 @@ FROM tomcat:8-jre8 -ENV PINPOINT_VERSION=1.5.1 +ENV PINPOINT_VERSION=1.5.2 -ADD start.sh /usr/local/tomcat/start.sh +ADD start-collector.sh /usr/local/bin/ -RUN chmod a+x /usr/local/tomcat/start.sh \ - && mkdir -p /assets/ \ +RUN chmod a+x /usr/local/bin/start-collector.sh \ + && mkdir -p /assets \ && curl -SL https://raw.githubusercontent.com/naver/pinpoint/$PINPOINT_VERSION/collector/src/main/resources/pinpoint-collector.properties -o /assets/pinpoint-collector.properties \ && curl -SL https://raw.githubusercontent.com/naver/pinpoint/$PINPOINT_VERSION/collector/src/main/resources/hbase.properties -o /assets/hbase.properties \ && curl -SL https://github.com/naver/pinpoint/releases/download/$PINPOINT_VERSION/pinpoint-collector-$PINPOINT_VERSION.war -o pinpoint-collector.war \ @@ -22,8 +22,6 @@ RUN chmod a+x /usr/local/tomcat/start.sh \ && unzip pinpoint-collector.war -d /usr/local/tomcat/webapps/ROOT \ && rm -rf pinpoint-collector.war -EXPOSE 9994 -EXPOSE 9995 -EXPOSE 9996 +EXPOSE 9994 9995 9996 -CMD ["/usr/local/tomcat/start.sh"] +ENTRYPOINT ["/usr/local/bin/start-collector.sh"] diff --git a/pinpoint-collector/start-collector.sh b/pinpoint-collector/start-collector.sh new file mode 100644 index 0000000..bad7ba1 --- /dev/null +++ b/pinpoint-collector/start-collector.sh @@ -0,0 +1,32 @@ +#!/bin/bash +set -e +set -x + +CLUSTER_ENABLE=${CLUSTER_ENABLE:-false} + +COLLECTOR_TCP_PORT=${COLLECTOR_TCP_PORT:-9994} +COLLECTOR_UDP_STAT_LISTEN_PORT=${COLLECTOR_UDP_STAT_LISTEN_PORT:-9995} +COLLECTOR_UDP_SPAN_LISTEN_PORT=${COLLECTOR_UDP_SPAN_LISTEN_PORT:-9996} + +HBASE_HOST=${HBASE_HOST:-localhost} +HBASE_PORT=${HBASE_PORT:-2181} + +DISABLE_DEBUG=${DISABLE_DEBUG:-true} + +cp /assets/pinpoint-collector.properties /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties +cp /assets/hbase.properties /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties + +sed -i "s/cluster.enable=true/cluster.enable=${CLUSTER_ENABLE}/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties + +sed -i "s/collector.tcpListenPort=9994/collector.tcpListenPort=${COLLECTOR_TCP_PORT}/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties +sed -i "s/collector.udpStatListenPort=9995/collector.udpStatListenPort=${COLLECTOR_UDP_STAT_LISTEN_PORT}/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties +sed -i "s/collector.udpSpanListenPort=9996/collector.udpSpanListenPort=${COLLECTOR_UDP_SPAN_LISTEN_PORT}/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties + +sed -i "s/hbase.client.host=localhost/hbase.client.host=${HBASE_HOST}/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties +sed -i "s/hbase.client.port=2181/hbase.client.port=${HBASE_PORT}/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties + +if [ "$DISABLE_DEBUG" == "true" ]; then + sed -i 's/level value="DEBUG"/level value="INFO"/' /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.xml +fi + +exec /usr/local/tomcat/bin/catalina.sh run \ No newline at end of file diff --git a/pinpoint-collector/start.sh b/pinpoint-collector/start.sh deleted file mode 100644 index d2eb86e..0000000 --- a/pinpoint-collector/start.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -set -e -set -x - -HBASE_HOST=${HBASE_HOST:-} -HBASE_PORT=${HBASE_PORT:-} - -cp /assets/pinpoint-collector.properties /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-collector.properties -cp /assets/hbase.properties /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties - -sed 's/hbase.client.host=localhost/hbase.client.host='"${HBASE_HOST}"'/g' -i /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties -sed 's/hbase.client.port=2181/hbase.client.port='"${HBASE_PORT}"'/g' -i /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties - -exec "/usr/local/tomcat/bin/catalina.sh run" diff --git a/pinpoint-hbase/Dockerfile b/pinpoint-hbase/Dockerfile index e365b02..ace170e 100644 --- a/pinpoint-hbase/Dockerfile +++ b/pinpoint-hbase/Dockerfile @@ -1,40 +1,39 @@ # DESCRIPTION Pinpoint APM HBase (Data Storage) # TO_BUILD docker build -t pinpoint-hbase . -# TO_RUN docker run -d --net=host -p 2181:2181 -p 60000:60000 -p 60010:60010 -p 60020:60020 -p 60030:60030 --name=pinpoint-hbase pinpoint-hbase +# TO_RUN docker run -d --net=host -p 2181:2181 -p 60000:60000 -p 16010:16010 -p 60020:60020 -p 16030:16030 --name=pinpoint-hbase pinpoint-hbase FROM java:8-jdk ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 -ENV HBASE_VERSION=1.0.2 +ENV HBASE_VERSION=1.0.3 ENV HBASE_HOME=/opt/hbase/hbase-$HBASE_VERSION -ENV PINPOINT_VERSION=1.5.1 +ENV PINPOINT_VERSION=1.5.2 -RUN mkdir -p /opt/hbase && \ - cd /opt/hbase && \ - curl -SL "http://apache.mirrors.pair.com/hbase/hbase-$HBASE_VERSION/hbase-$HBASE_VERSION-bin.tar.gz" -o hbase.tar.gz && \ - tar xfvz hbase.tar.gz && \ - rm -rf hbase.tar.gz +RUN mkdir -p /opt/hbase \ + && cd /opt/hbase \ + && curl -SL "http://apache.mirrors.pair.com/hbase/hbase-$HBASE_VERSION/hbase-$HBASE_VERSION-bin.tar.gz" -o hbase.tar.gz \ + && tar xfvz hbase.tar.gz \ + && rm -rf hbase.tar.gz ADD hbase-site.xml /opt/hbase/hbase-$HBASE_VERSION/conf/hbase-site.xml -RUN curl -SL "https://raw.githubusercontent.com/naver/pinpoint/$PINPOINT_VERSION/scripts/hbase-create.hbase" -o /opt/hbase/hbase-create.hbase && \ - $HBASE_HOME/bin/start-hbase.sh && \ - sleep 10 && \ - $HBASE_HOME/bin/hbase shell /opt/hbase/hbase-create.hbase && \ - $HBASE_HOME/bin/stop-hbase.sh +RUN curl -SL "https://raw.githubusercontent.com/naver/pinpoint/$PINPOINT_VERSION/hbase/scripts/hbase-create.hbase" -o /opt/hbase/hbase-create.hbase \ + && $HBASE_HOME/bin/start-hbase.sh \ + && sleep 10 \ + && $HBASE_HOME/bin/hbase shell /opt/hbase/hbase-create.hbase \ + && $HBASE_HOME/bin/stop-hbase.sh -VOLUME /home/pinpoint/hbase -VOLUME /home/pinpoint/zookeeper +VOLUME ["/home/pinpoint/hbase", "/home/pinpoint/zookeeper"] # zookeeper EXPOSE 2181 # HBase Master API port EXPOSE 60000 # HBase Master Web UI -EXPOSE 60010 +EXPOSE 16010 # Regionserver API port EXPOSE 60020 # HBase Regionserver web UI -EXPOSE 60030 +EXPOSE 16030 -CMD /opt/hbase/hbase-$HBASE_VERSION/bin/hbase master start +ENTRYPOINT /opt/hbase/hbase-$HBASE_VERSION/bin/hbase master start diff --git a/pinpoint-web/Dockerfile b/pinpoint-web/Dockerfile index 63e1392..c48eac3 100644 --- a/pinpoint-web/Dockerfile +++ b/pinpoint-web/Dockerfile @@ -4,11 +4,11 @@ FROM tomcat:8-jre8 -ENV PINPOINT_VERSION=1.5.1 +ENV PINPOINT_VERSION=1.5.2 -ADD start.sh /usr/local/tomcat/start.sh +ADD start-web.sh /usr/local/bin/ -RUN chmod a+x /usr/local/tomcat/start.sh \ +RUN chmod a+x /usr/local/bin/start-web.sh \ && mkdir -p /assets/ \ && curl -SL https://raw.githubusercontent.com/naver/pinpoint/$PINPOINT_VERSION/web/src/main/resources/pinpoint-web.properties -o /assets/pinpoint-web.properties \ && curl -SL https://raw.githubusercontent.com/naver/pinpoint/$PINPOINT_VERSION/web/src/main/resources/hbase.properties -o /assets/hbase.properties \ @@ -20,4 +20,5 @@ RUN chmod a+x /usr/local/tomcat/start.sh \ EXPOSE 8080 -CMD ["/usr/local/tomcat/start.sh"] +ENTRYPOINT ["/usr/local/bin/start-web.sh"] + diff --git a/pinpoint-web/start-web.sh b/pinpoint-web/start-web.sh new file mode 100644 index 0000000..25198b8 --- /dev/null +++ b/pinpoint-web/start-web.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -e +set -x + +CLUSTER_ENABLE=${CLUSTER_ENABLE:-false} + +ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin} + +HBASE_HOST=${HBASE_HOST:-localhost} +HBASE_PORT=${HBASE_PORT:-2181} + +DISABLE_DEBUG=${DISABLE_DEBUG:-true} + +cp /assets/pinpoint-web.properties /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-web.properties +cp /assets/hbase.properties /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties + +sed -i "s/cluster.enable=true/cluster.enable=${CLUSTER_ENABLE}/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-web.properties + +sed -i "s/admin.password=admin/admin.password=${ADMIN_PASSWORD}/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-web.properties + +sed -i "s/hbase.client.host=localhost/hbase.client.host=${HBASE_HOST}/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties +sed -i "s/hbase.client.port=2181/hbase.client.port=${HBASE_PORT}/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties + +if [ "$DISABLE_DEBUG" == "true" ]; then + sed -i 's/level value="DEBUG"/level value="INFO"/' /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.xml +fi + +exec /usr/local/tomcat/bin/catalina.sh run \ No newline at end of file diff --git a/pinpoint-web/start.sh b/pinpoint-web/start.sh deleted file mode 100644 index f0da652..0000000 --- a/pinpoint-web/start.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -set -e -set -x - -HBASE_HOST=${HBASE_HOST:-} -HBASE_PORT=${HBASE_PORT:-} - -cp /assets/pinpoint-web.properties /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/pinpoint-web.properties -cp /assets/hbase.properties /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties - -sed 's/hbase.client.host=localhost/hbase.client.host='"${HBASE_HOST}"'/g' -i /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties -sed 's/hbase.client.port=2181/hbase.client.port='"${HBASE_PORT}"'/g' -i /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/hbase.properties - -/usr/local/tomcat/bin/catalina.sh run \ No newline at end of file