diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..2007a548c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM java:7 + +ENV app /kafka-manager +WORKDIR ${app} + +COPY sbt $app/sbt +COPY build.sbt $app/build.sbt +COPY app $app/app +COPY conf $app/conf +COPY img $app/img +COPY project/build.properties $app/project/build.properties +COPY project/plugins.sbt $app/project/plugins.sbt +COPY public $app/public +COPY src $app/src +COPY test $app/test + +RUN ./sbt assembly +EXPOSE 9000 +CMD [ "./sbt", "run" ] diff --git a/kafka-manager b/kafka-manager new file mode 100755 index 000000000..2dfa3ab1e --- /dev/null +++ b/kafka-manager @@ -0,0 +1,32 @@ +#!/bin/bash -Eu +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# TODO: detect our OS +if [ $(boot2docker status) != 'running' ]; then + echo 'Starting boot2docker VM...' + boot2docker up +fi + +echo 'Building docker container' +docker build -t stealthly/kafkamanager . + +echo 'Starting docker runtime in background' +#docker run --rm -it stealthly/kafkamanager + +id=$(docker run -p 9000:9000 -t -d stealthly/kafkamanager) + +echo 'Kafka manager started on port 9000' \ No newline at end of file diff --git a/marathon.json b/marathon.json new file mode 100644 index 000000000..2eb659e66 --- /dev/null +++ b/marathon.json @@ -0,0 +1,39 @@ +{ + "id": "/kafka-manager", + "cpus": 0.5, + "mem": 256.0, + "instances": 1, + "container": { + "type": "DOCKER", + "docker": { + "image": "stealthly/kafkamanager", + "forcePullImage": true, + "network": "BRIDGE", + "portMappings": [ + { + "containerPort": 9000, + "hostPort": 0, + "protocol": "tcp" + } + ], + "privileged": false, + "parameters": [ + { "key": "tty", "value": "true" } + ] + }, + "volumes": [] + }, + "env": { + "APPLICATION_SECRET": "letmein" + }, + "healthChecks": [ + { + "protocol": "HTTP", + "portIndex": 0, + "path": "/", + "gracePeriodSeconds": 10, + "intervalSeconds": 30, + "maxConsecutiveFailures": 3 + } + ] +} \ No newline at end of file