diff --git a/environment.sh b/environment.sh index e76b3e7..898769c 100644 --- a/environment.sh +++ b/environment.sh @@ -78,6 +78,14 @@ export SKYWALKING_USERNAME=skywalking export SKYWALKING_PASSWORD=skywalking +# Consul 配置 +export CONSUL_NAME="consul" +export CONSUL_IMAGE="consul:latest" +export CONSUL_PORT="8500" +export CONSUL_MEMORY="512m" + + + export SKY_AOP="sky-oap:11800" #主机INGRESS_PORT 映射到容器80 INGRESS_SSL_PORT 映射到容器 443 export INGRESS_PORT=80 @@ -90,7 +98,7 @@ export XXL_JOB=http://xxljob:8080/xxl-job-admin export TZ=Asia/Shanghai export SPRING_CLOUD_CONSUL_HOST=consul export SPRING_CLOUD_CONSUL_PORT=8500 - + diff --git a/init/10.sky-oap.sh b/init/10.sky-oap.sh index 14f0f4c..9c38983 100755 --- a/init/10.sky-oap.sh +++ b/init/10.sky-oap.sh @@ -40,11 +40,8 @@ if docker ps -a | grep -q ${SKYWALKING_OAP_NAME}; then docker rm ${SKYWALKING_OAP_NAME} >/dev/null 2>&1 fi -if docker ps -a | grep -q ${SKYWALKING_UI_NAME}; then - echo "停止并删除已存在的 SkyWalking UI 容器..." - docker stop ${SKYWALKING_UI_NAME} >/dev/null 2>&1 - docker rm ${SKYWALKING_UI_NAME} >/dev/null 2>&1 -fi + + # 启动SkyWalking OAP容器 echo "启动 SkyWalking OAP..." diff --git a/init/11.sky-ui.sh b/init/11.sky-ui.sh index 5883c20..fea8d52 100755 --- a/init/11.sky-ui.sh +++ b/init/11.sky-ui.sh @@ -42,7 +42,6 @@ if docker ps -a | grep -q ${SKYWALKING_UI_NAME}; then fi - echo "启动 SkyWalking UI..." docker run -d \ --name ${SKYWALKING_UI_NAME} \ diff --git a/init/12.consul.sh b/init/12.consul.sh index e69de29..dce1b08 100644 --- a/init/12.consul.sh +++ b/init/12.consul.sh @@ -0,0 +1,66 @@ +source ../environment.sh + +if [ -z "$NETWORK" ]; then +echo "错误: 未找到 NETWORK 环境变量" +exit 1 +fi +if [ -z "$CONSUL_NAME" ]; then +echo "错误: 未找到 CONSUL_NAME 环境变量" +exit 1 +fi +if [ -z "$CONSUL_IMAGE" ]; then +echo "错误: 未找到 CONSUL_IMAGE 环境变量" +exit 1 +fi +if [ -z "$CONSUL_PORT" ]; then +echo "错误: 未找到 CONSUL_PORT 环境变量" +exit 1 +fi +if [ -z "$CONSUL_MEMORY" ]; then +echo "错误: 未找到 CONSUL_MEMORY 环境变量" +exit 1 +fi + +# 停止并删除已存在的容器 +if docker ps -a | grep -q ${CONSUL_NAME}; then + echo "停止并删除已存在的 Consul 容器..." + docker stop ${CONSUL_NAME} >/dev/null 2>&1 + docker rm ${CONSUL_NAME} >/dev/null 2>&1 +fi + +# 创建数据目录 +CONSUL_DATA_DIR="/Users/sunpeng/tuoheng/data/consul" +mkdir -p ${CONSUL_DATA_DIR} + +# 启动Consul容器 +echo "启动 Consul..." +docker run -d \ + --name ${CONSUL_NAME} \ + --network $NETWORK \ + --memory $CONSUL_MEMORY \ + --restart unless-stopped \ + -p ${CONSUL_PORT}:8500 \ + --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \ + $CONSUL_IMAGE agent -dev -client=0.0.0.0 -ui + +# 等待Consul启动 +echo "等待 Consul 就绪..." +until docker exec ${CONSUL_NAME} consul members 2>/dev/null; do + echo "等待 Consul 启动..." + sleep 3 +done + +echo "Consul 部署完成!" +echo "UI 访问地址: http://localhost:${CONSUL_PORT}" + + +echo "Service $SERVICE_NAME . Creating..." + docker service create \ + --name "$SERVICE_NAME" \ + --env CONSUL_BIND_INTERFACE=eth0 \ + --restart-condition any \ + --network "$NETWORK" \ + --publish published=8500,target=8500 \ + --constraint 'node.role == manager' \ + consul +docker service ls