You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by sh...@apache.org on 2019/05/05 14:29:00 UTC
[unomi] 01/03: Added docker from mikeghen/unomi-dokcer
This is an automated email from the ASF dual-hosted git repository.
shuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git
commit ea788caaf6a6f626a5d51fd10265ee36ddb271ef
Author: Mike Ghen <mi...@gmail.com>
AuthorDate: Fri May 3 21:19:48 2019 -0400
Added docker from mikeghen/unomi-dokcer
---
docker/Dockerfile | 37 +++++++++++++++++++++++++++++++++++++
docker/README.md | 16 ++++++++++++++++
docker/docker-compose.yml | 35 +++++++++++++++++++++++++++++++++++
docker/entrypoint.sh | 16 ++++++++++++++++
4 files changed, 104 insertions(+)
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000..2ac0004
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,37 @@
+################################################################################
+# 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 openjdk:8-jre
+
+# Unomi environment variables
+ENV KARAF_INSTALL_PATH /opt
+ENV KARAF_HOME $KARAF_INSTALL_PATH/apache-unomi
+ENV PATH $PATH:$KARAF_HOME/bin
+ENV KARAF_OPTS "-Dunomi.autoStart=true"
+WORKDIR $KARAF_HOME
+
+RUN wget http://apache.mirrors.pair.com/incubator/unomi/1.3.0-incubating/unomi-1.3.0-incubating-bin.tar.gz
+RUN tar -xzf unomi-1.3.0-incubating-bin.tar.gz
+RUN mv unomi-1.3.0-incubating/* .
+RUN rm unomi-1.3.0-incubating-bin.tar.gz
+RUN rm -r unomi-1.3.0-incubating
+COPY ./entrypoint.sh ./entrypoint.sh
+
+EXPOSE 9443
+EXPOSE 8181
+
+CMD ["/bin/bash", "./entrypoint.sh"]
diff --git a/docker/README.md b/docker/README.md
new file mode 100644
index 0000000..343ddb7
--- /dev/null
+++ b/docker/README.md
@@ -0,0 +1,16 @@
+# Unomi Docker Image
+
+![Docker Pulls](https://img.shields.io/docker/pulls/mikeghen/unomi.svg)
+ [![](https://images.microbadger.com/badges/version/mikeghen/unomi:1.3.svg)](https://microbadger.com/images/mikeghen/unomi:1.3 "Get your own version badge on microbadger.com")
+# Running Unomi
+Unomi requires ElasticSearch so it is recommended to run Unomi and ElasticSearch using docker-compose:
+```
+docker-compose up
+```
+
+# Environment variables
+
+When you start the `unomi` image, you can adjust the configuration of the Unomi instance by passing one or more environment variables on the `docker run` command line.
+
+- **`ELASTICSEARCH_HOST`** - The IP address of hostname for ElasticSearch
+- **`ELASTICSEARCH_PORT`** - The port for ElasticSearch
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
new file mode 100644
index 0000000..61ee644
--- /dev/null
+++ b/docker/docker-compose.yml
@@ -0,0 +1,35 @@
+version: '2.2'
+services:
+ elasticsearch:
+ image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3
+ volumes: # Persist ES data in seperate "esdata" volume
+ - esdata1:/usr/share/elasticsearch/data
+ environment:
+ - bootstrap.memory_lock=true
+ - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+ - discovery.type=single-node
+ - xpack.security.enabled=false
+ - cluster.name=contextElasticSearch
+ ports: # Expose Elasticsearch ports
+ - "9300:9300"
+ - "9200:9200"
+
+ unomi:
+ # TODO: Replace with official image
+ image: mikeghen/unomi:1.3
+ container_name: unomi
+ environment:
+ - ELASTICSEARCH_HOST=elasticsearch
+ - ELASTICSEARCH_PORT=9300
+ ports:
+ - 8181:8181
+ - 9443:9443
+ links:
+ - elasticsearch
+ depends_on:
+ - elasticsearch
+
+
+volumes: # Define seperate volume for Elasticsearch data
+ esdata1:
+ driver: local
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
new file mode 100755
index 0000000..b20fd80
--- /dev/null
+++ b/docker/entrypoint.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+# Wait for heathy ElasticSearch
+# next wait for ES status to turn to Green
+health_check="$(curl -fsSL "$ELASTICSEARCH_HOST:9200/_cat/health?h=status")"
+
+until ([ "$health_check" = 'yellow' ] || [ "$health_check" = 'green' ]); do
+ health_check="$(curl -fsSL "$ELASTICSEARCH_HOST:9200/_cat/health?h=status")"
+ >&2 echo "Elastic Search is unavailable - waiting"
+ sleep 1
+done
+
+sed -i "s/elasticSearchAddresses=localhost:9300/elasticSearchAddresses=${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}/g" /opt/apache-unomi/etc/org.apache.unomi.persistence.elasticsearch.cfg
+$KARAF_HOME/bin/start
+$KARAF_HOME/bin/status # Call to status delays while Karaf creates karaf.log
+tail -f $KARAF_HOME/data/log/karaf.log