#!/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=10550 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 curldata='{"serviceName": "workflow", "version": "v1", "url": "/api/workflow/v1","protocol": "REST", "visualRange": "1", "nodes": [ {"ip": "'$SERVICE_IP'","port": "'$SERVICE_PORT'","ttl": 0}]}' curl -v -X POST -H "Accept: Application/json" -H "Content-Type: application/json" -d "${curldata}" http://$OPENPALETTE_MSB_IP:$OPENPALETTE_MSB_PORT/api/microservices/v1/services 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 ./run.sh ;; * ) # 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