diff --git a/docker/oap/docker-entrypoint.sh b/docker/oap/docker-entrypoint.sh index 88e3d85c4f16fe7faa4ea6be5233a1d05f3ff09e..5897b00782ee976580e5c993e3536312d1adb8da 100755 --- a/docker/oap/docker-entrypoint.sh +++ b/docker/oap/docker-entrypoint.sh @@ -30,7 +30,7 @@ generateClusterZookeeper() { cluster: zookeeper: nameSpace: \${SW_NAMESPACE:""} - hostPort: \${SW_CLUSTER_ZK_HOST_PORT:localhost:2181} + hostPort: \${SW_CLUSTER_ZK_HOST_PORT:zookeeper:2181} #Retry Policy baseSleepTimeMs: \${SW_CLUSTER_ZK_SLEEP_TIME:1000} # initial amount of time to wait between retries maxRetries: \${SW_CLUSTER_ZK_MAX_RETRIES:3} # max number of times to retry @@ -54,7 +54,7 @@ cluster: consul: serviceName: \${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} # Consul cluster nodes, example: 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500 - hostPort: \${SW_CLUSTER_CONSUL_HOST_PORT:localhost:8500} + hostPort: \${SW_CLUSTER_CONSUL_HOST_PORT:consul:8500} EOT } @@ -64,7 +64,16 @@ cluster: etcd: serviceName: \${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} # Etcd cluster nodes, example: 10.0.0.1:2379,10.0.0.2:2379,10.0.0.3:2379 - hostPort: \${SW_CLUSTER_ETCD_HOST_PORT:localhost:2379} + hostPort: \${SW_CLUSTER_ETCD_HOST_PORT:etcd:2379} +EOT +} + +generateClusterNacos() { + cat <> ${var_application_file} +cluster: + nacos: + serviceName: \${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} + hostPort: \${SW_CLUSTER_NACOS_HOST_PORT:nacos:8848} EOT } @@ -111,6 +120,55 @@ storage: EOT } +generateConfigurationNone() { + cat <> ${var_application_file} +configuration: + none: +EOT +} + +generateConfigurationApollo() { + cat <> ${var_application_file} +configuration: + apollo: + apolloMeta: \${SW_CONFIGURATION_APOLLO_META:http://apollo:8080} + apolloCluster: \${SW_CONFIGURATION_APOLLO_CLUSTER:default} + apolloEnv: \${SW_CONFIGURATION_APOLLO_ENV:""} + appId: \${SW_CONFIGURATION_APOLLO_APP_ID:skywalking} + period: \${SW_CONFIGURATION_APOLLO_PERIOD:5} +EOT +} + +generateConfigurationNacos() { + cat <> ${var_application_file} +configuration: + nacos: + # Nacos Server Host + serverAddr: \${SW_CONFIGURATION_NACO_SERVER_ADDR:naco} + # Nacos Server Port + port: \${SW_CONFIGURATION_NACO_PORT:8848} + # Nacos Configuration Group + group: \${SW_CONFIGURATION_NACO_GROUP:skywalking} + # Unit seconds, sync period. Default fetch every 60 seconds. + period : \${SW_CONFIGURATION_NACO_PERIOD:5} + # the name of current cluster, set the name if you want to upstream system known. + clusterName: \${SW_CONFIGURATION_NACO_CLUSTER_NAME:default} +EOT +} + +generateConfigurationZookeeper() { + cat <> ${var_application_file} +configuration: + zookeeper: + period: \${SW_CONFIGURATION_ZOOKEEPER_PERIOD:60} # Unit seconds, sync period. Default fetch every 60 seconds. + nameSpace: \${SW_CONFIGURATION_ZOOKEEPER_NAMESPACE:/default} + hostPort: \${SW_CONFIGURATION_ZOOKEEPER_HOST_PATH:localhost:2181} + #Retry Policy + baseSleepTimeMs: \${SW_CONFIGURATION_ZOOKEEPER_BASE_SLEEP_TIME_MS:1000} # initial amount of time to wait between retries + maxRetries: \${SW_CONFIGURATION_ZOOKEEPER_MAX_RETRIES:3}3 # max number of times to retry +EOT +} + validateVariables() { name=$1; value=$2; list=$3 valid=false @@ -128,12 +186,15 @@ validateVariables() { generateApplicationYaml() { # validate - [[ -z "$SW_CLUSTER" ]] && [[ -z "$SW_STORAGE" ]] && { echo "Error: please specify \"SW_CLUSTER\" \"SW_STORAGE\""; exit 1; } + [[ -z "$SW_CLUSTER" ]] && [[ -z "$SW_STORAGE" ]] && [[ -z "$SW_CONFIGURATION" ]] \ + && { echo "Error: please specify \"SW_CLUSTER\" \"SW_STORAGE\" \"SW_CONFIGURATION\""; exit 1; } - validateVariables "SW_CLUSTER" "$SW_CLUSTER" "standalone zookeeper kubernetes consul etcd" + validateVariables "SW_CLUSTER" "$SW_CLUSTER" "standalone zookeeper kubernetes consul etcd nacos" validateVariables "SW_STORAGE" "$SW_STORAGE" "elasticsearch h2 mysql" + validateVariables "SW_CONFIGURATION" "$SW_CONFIGURATION" "none apollo nacos zookeeper" + echo "# Generated by 'docker-entrypoint.sh'" > ${var_application_file} #generate cluster case ${SW_CLUSTER} in @@ -142,6 +203,7 @@ generateApplicationYaml() { kubernetes) generateClusterK8s;; consul) generateClusterConsul;; etcd) generateClusterEtcd;; + nacos) generateClusterNacos;; esac #generate core @@ -211,8 +273,16 @@ telemetry: prometheus: host: \${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0} port: \${SW_TELEMETRY_PROMETHEUS_PORT:1234} -configuration: - none: +EOT + # generate configuration + case ${SW_CONFIGURATION} in + none) generateConfigurationNone;; + apollo) generateConfigurationApollo;; + nacos) generateConfigurationNacos;; + zookeeper) generateConfigurationZookeeper;; + esac + + cat <> ${var_application_file} envoy-metric: default: EOT @@ -253,6 +323,10 @@ EOT echo "[Entrypoint] Apache SkyWalking Docker Image" +SW_CLUSTER=${SW_CLUSTER:-standalone} +SW_STORAGE=${SW_STORAGE:-h2} +SW_CONFIGURATION=${SW_CONFIGURATION:-none} + if [[ -z "$SW_L0AD_CONFIG_FILE_FROM_VOLUME" ]] || [[ "$SW_L0AD_CONFIG_FILE_FROM_VOLUME" != "true" ]]; then generateApplicationYaml echo "Generated application.yml" @@ -267,5 +341,6 @@ do CLASSPATH="$i:$CLASSPATH" done +set -ex exec java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap \ ${JAVA_OPTS} -classpath ${CLASSPATH} org.apache.skywalking.oap.server.starter.OAPServerStartUp "$@"