#!/usr/bin/env sh # $0 is a script name, # $1, $2, $3 etc are passed arguments # $1 is our command CMD=$1 if [ -z "$SERVICE_IP" ]; then export SERVICE_IP=`hostname -i` fi echo "SERVICE_IP=$SERVICE_IP" if [ -z "$SERVICE_PORT" ]; then export SERVICE_PORT=8080 fi echo "SERVICE_PORT=$SERVICE_PORT" if [ -z "$OPENPALETTE_MSB_IP" ]; then echo "Missing required variable OPENPALETTE_MSB_IP: Microservices Service Bus address :" exit 1 fi if [ -z "$OPENPALETTE_MSB_PORT" ]; then echo "Missing required variable OPENPALETTE_MSB_PORT: Microservices Service Bus address :" exit 1 fi echo "MSB_ADDR=${OPENPALETTE_MSB_IP}:${OPENPALETTE_MSB_PORT}" # Wait for MSB initialization echo "Wait for MSB initialization" for i in {1..5}; do curl -sS -m 1 ${OPENPALETTE_MSB_IP}:${OPENPALETTE_MSB_PORT} > /dev/null && break sleep $i done curl -X POST --data '{"serviceName": "activiti-rest","version": "v1","url": "/activiti-rest/","path": "/activiti-rest/","protocol": "REST","visualRange": "1","nodes": [{"ip": "${SERVICE_IP}","port": "${SERVICE_PORT}","ttl": 0}]}' http://${OPENPALETTE_MSB_IP}:${OPENPALETTE_MSB_PORT}/api/microservices/v1/services -H "Accept: Application/json" -H "Content-Type:application/json" case "$CMD" in "dev" ) ;; "start" ) # we can modify files here, using ENV variables passed in # "docker create" command. It can't be done during build process. exec ./catalina.sh run ;; * ) # Run custom command. Thanks to this line we can still use # "docker run our_image /bin/bash" and it will work exec $CMD ${@:2} ;; esac