diff --git a/docker_start.sh b/docker_start.sh index 2d87c9f126fe88cacf4197d56b926130861b4e89..d455825d25a902a4fbcd1bee1ade2e8df55c7e66 100644 --- a/docker_start.sh +++ b/docker_start.sh @@ -1,8 +1,8 @@ #!/bin/bash -# source utils.sh +source utils.sh -# replace $NGINX_DEFAULT_CONFIG PROXY_ +replace $NGINX_DEFAULT_CONFIG PROXY_ # replace "umi.*.js" WS_SERVER_URL /usr/share/nginx/html # sed -i "s/PROXY_WEB_SERVICE/$PROXY_WEB_SERVICE/g" /etc/nginx/conf.d/default.conf diff --git a/regist-to-eureka/README.md b/regist-to-eureka/README.md new file mode 100644 index 0000000000000000000000000000000000000000..edd2774a488c3d836a753ca27a373ed6f7cae755 --- /dev/null +++ b/regist-to-eureka/README.md @@ -0,0 +1,2 @@ +# regist-to-eureka + diff --git a/regist-to-eureka/reg2eureka.sh b/regist-to-eureka/reg2eureka.sh new file mode 100755 index 0000000000000000000000000000000000000000..c632724da4d3b3720ef027c073928a47982177de --- /dev/null +++ b/regist-to-eureka/reg2eureka.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +# $1 is used as the host name. +EUREKA_URI="http://${EUREKA_SERVER:-192.168.2.21:7777}" +echo $EUREKA_URI +APP_NAME=${SERVICE_NAME:-fake} +SERVICE_HOST=${EXTERNAL_HOST:-fakehost.com} +SERVICE_PORT=${EXTERNAL_PORT:-80} +CROSS_HEADER=${CROSS_ORIGIN:-false} + +INTERVAL_TIME=${INTERVAL:-30} +SERVICE_PROTOCOL="http" +SERVICE_URI="$SERVICE_PROTOCOL://$SERVICE_HOST:$SERVICE_PORT" +HOME_URI="$SERVICE_URI/" +HEALTH_URI="$SERVICE_URI/" +STATUS_URI="$SERVICE_URI/" +HOST_NAME="${HOSTNAME:-fake01}" + +function regist2eureka { + + cat </tmp/json.json +{ + "instance": { + "app": "$APP_NAME", + "dataCenterInfo": { + "@class": "com.netflix.appinfo.MyDataCenterInfo", + "name": "MyOwn" + }, + "healthCheckUrl": "$HEALTH_URI", + "homePageUrl": "$HOME_URI", + "hostName": "$HOST_NAME", + "ipAddr": "$SERVICE_HOST", + "leaseInfo": { + "renewalIntervalInSecs": 120, + "evictionDurationInSecs": 3600 + }, + "metadata": { + "owner": "Strike", + "cost-code": "9527", + "cross-origin": "${CROSS_HEADER}" + }, + "port": { + "\$": "$SERVICE_PORT", + "@enabled": "true" + }, + "securePort": { + "\$": 443, + "@enabled": "false" + }, + "secureVipAddress": null, + "status": "UP", + "statusPageUrl": "$STATUS_URI", + "vipAddress": null + } +} +EOF + echo $EUREKA_URI/eureka/apps/${APP_NAME} + curl -v --header "content-type: application/json" \ + --data-binary @/tmp/json.json \ + $EUREKA_URI/eureka/apps/${APP_NAME} + +} + +function sendHeartbeats { + echo $EUREKA_URI/eureka/apps/${APP_NAME}/$HOST_NAME + curl -v --header "content-type: application/json" \ + -X POST \ + $EUREKA_URI/eureka/apps/${APP_NAME}/$HOST_NAME + regist2eureka +} + +while true; do + sendHeartbeats + sleep $INTERVAL_TIME +done diff --git a/regist-to-eureka/utils.sh b/regist-to-eureka/utils.sh new file mode 100755 index 0000000000000000000000000000000000000000..11165e2983b8c00b843a9e8118f888852416af7f --- /dev/null +++ b/regist-to-eureka/utils.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +NGINX_DEFAULT_CONFIG="/etc/nginx/conf.d/default.conf" + +function modify_file() { + for item in $(env | grep $2); do + key=${item%%=*} + value=${item##*=} + sed -i "s#$key#$value#g" $1 + done +} + +function replace() { + local target=$1 + local env_parttern=$2 + local entry=${3:-/} + + if [ -f $target ]; then + modify_file $target $env_parttern + return 0 + fi + echo "start finding $target " + for item in $(env | grep $env_parttern); do + key=${item%%=*} + value=${item##*=} + substring="s#$key#$value#g" + find $entry -name $1 -exec sed -i $substring {} \; + done +}