Skip to content

Commit

Permalink
Add docker support
Browse files Browse the repository at this point in the history
  • Loading branch information
pambrose committed Apr 14, 2017
1 parent f692cf2 commit 6de51c0
Show file tree
Hide file tree
Showing 9 changed files with 180 additions and 17 deletions.
4 changes: 4 additions & 0 deletions .editorconfig
@@ -0,0 +1,4 @@
# Override for Makefile
[{Makefile, makefile, GNUmakefile}]
indent_style = tab
indent_size = 4
5 changes: 5 additions & 0 deletions Makefile
@@ -1,3 +1,5 @@
default: build

build:
mvn -DskipTests=true clean package

Expand All @@ -11,3 +13,6 @@ plugincheck:
mvn versions:display-plugin-updates

versioncheck: jarcheck plugincheck

docker-build: build
./bin/build-docker-images.sh
9 changes: 9 additions & 0 deletions bin/build-docker-images.sh
@@ -0,0 +1,9 @@
#!/bin/sh

VERSION=1.0.0

cd ~/git/prometheus-proxy

docker build -f ./docker/base.df -t=pambrose/prometheus-base:$VERSION .
docker build -f ./docker/proxy.df -t=pambrose/prometheus-proxy:$VERSION .
docker build -f ./docker/agent.df -t=pambrose/prometheus-agent:$VERSION .
9 changes: 9 additions & 0 deletions docker/agent.df
@@ -0,0 +1,9 @@
FROM pambrose/prometheus-proxy:1.0.0
MAINTAINER Paul Ambrose "pambrose@mac.com"

EXPOSE 8081

ENTRYPOINT ["/prometheus-proxy/bin/proxy.sh", \
"--metrics", "8081", \
"--grpc", "50051"]

10 changes: 10 additions & 0 deletions docker/base.df
@@ -0,0 +1,10 @@
FROM frolvlad/alpine-oraclejdk8:latest
MAINTAINER Paul Ambrose "pambrose@mac.com"

COPY ./target/bin /prometheus-proxy
COPY ./target/classes /prometheus-proxy
COPY ./target/lib /prometheus-proxy
COPY ./logback/docker-logback.xml /prometheus-proxy/logback/logback.xml

CMD ["bash"]

22 changes: 8 additions & 14 deletions docker/proxy.df
@@ -1,19 +1,13 @@
FROM java:8
FROM pambrose/prometheus-proxy:1.0.0
MAINTAINER Paul Ambrose "pambrose@mac.com"

RUN apt-get update
RUN apt-get -y install maven
RUN apt-get -y install git
RUN apt-get -y install make
RUN apt-get -y install docker
RUN apt-get -y install --no-install-recommends apt-utils
RUN apt-get -y clean
EXPOSE 8080
EXPOSE 8081
EXPOSE 50051

RUN mvn --version
ENTRYPOINT ["/prometheus-proxy/bin/proxy.sh", \
"--port", "8080", \
"--metrics", "8081", \
"--grpc", "50051"]

RUN mkdir /git
RUN cd /git && git clone https://github.com/pambrose/prometheus-proxy.git
RUN cd /git/prometheus-proxy && make build

WORKDIR /git/haptava-system

18 changes: 18 additions & 0 deletions logback/docker-logback.xml
@@ -0,0 +1,18 @@
<configuration scan="true" scanPeriod="30 seconds">

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{HH:mm:ss.SSS} %-5level [%file:%line] - %msg [%thread]%n
</pattern>
</encoder>
</appender>

<logger name="io.grpc.internal" level="WARN"/>
<logger name="spark.http.matching" level="WARN"/>

<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>

</configuration>
116 changes: 114 additions & 2 deletions pom.xml
Expand Up @@ -21,14 +21,17 @@
<logback.version>1.2.3</logback.version>
<slf4j.version>1.8.0-alpha1</slf4j.version>

<assembly.version>2.6</assembly.version>
<maven.compiler.version>3.6.1</maven.compiler.version>
<maven-jar-plugin.version>3.0.2</maven-jar-plugin.version>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<appassembler.version>1.10</appassembler.version>

<maven.version>3.0.5</maven.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<skipTests>true</skipTests>
</properties>

<prerequisites>
Expand Down Expand Up @@ -230,6 +233,115 @@
</executions>
</plugin>

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>${assembly.version}</version>
<executions>

<execution>
<id>proxy</id>
<goals>
<goal>attached</goal>
</goals>
<phase>package</phase>

<configuration>
<finalName>proxy-1.0</finalName>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.sudothought.proxy.Proxy</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</execution>

<execution>
<id>agent</id>
<goals>
<goal>attached</goal>
</goals>
<phase>package</phase>

<configuration>
<finalName>agent-1.0</finalName>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.sudothought.agent.Agent</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</execution>

</executions>
</plugin>

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>${appassembler.version}</version>

<executions>
<execution>

<phase>package</phase>
<goals>
<goal>assemble</goal>
</goals>

<configuration>

<assembleDirectory>target</assembleDirectory>
<generateRepository>true</generateRepository>
<repositoryLayout>flat</repositoryLayout>
<repositoryName>lib</repositoryName>

<binFileExtensions>
<unix>.sh</unix>
</binFileExtensions>

<platforms>
<platform>unix</platform>
</platforms>

<programs>
<program>
<id>proxy</id>
<mainClass>com.sudothought.proxy.Proxy</mainClass>
<jvmSettings>
<extraArguments>
<extraArgument>
-Dlogback.configurationFile=file:./logback/docker-logback.xml
</extraArgument>
</extraArguments>
</jvmSettings>
</program>

<program>
<id>agent</id>
<mainClass>com.sudothought.agent.Agent</mainClass>
<jvmSettings>
<extraArguments>
<extraArgument>
-Dlogback.configurationFile=file:./logback/docker-logback.xml
</extraArgument>
</extraArguments>
</jvmSettings>
</program>
</programs>

</configuration>
</execution>
</executions>
</plugin>

</plugins>
</build>
</project>
4 changes: 3 additions & 1 deletion src/main/java/com/sudothought/agent/AgentArgs.java
Expand Up @@ -7,7 +7,9 @@ public class AgentArgs
extends BaseArgs {

@Parameter(names = {"-p", "--proxy"}, description = "Proxy url")
public String proxy = "localhost:50051";
public String proxy = "localhost:50051";
@Parameter(names = {"-m", "--metrics"}, description = "Metrics listen port")
public int metrics_port = 8081;
@Parameter(names = {"-c", "--config"}, required = true, description = "Configuration .yml file")
public String config;

Expand Down

0 comments on commit 6de51c0

Please sign in to comment.