From 125155823df30e89a4065789d8530b47ea58e7ba Mon Sep 17 00:00:00 2001
From: yms <yms@cdhncy.com>
Date: Mon, 25 Nov 2024 17:18:16 +0800
Subject: [PATCH] =?UTF-8?q?build:=20=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 docker_start.sh                |  4 +-
 regist-to-eureka/README.md     |  2 +
 regist-to-eureka/reg2eureka.sh | 75 ++++++++++++++++++++++++++++++++++
 regist-to-eureka/utils.sh      | 29 +++++++++++++
 4 files changed, 108 insertions(+), 2 deletions(-)
 create mode 100644 regist-to-eureka/README.md
 create mode 100755 regist-to-eureka/reg2eureka.sh
 create mode 100755 regist-to-eureka/utils.sh

diff --git a/docker_start.sh b/docker_start.sh
index 2d87c9f..d455825 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 0000000..edd2774
--- /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 0000000..c632724
--- /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 <<EOF >/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 0000000..11165e2
--- /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
+}
-- 
GitLab