docker/init/12.consul.sh

64 lines
1.6 KiB
Bash
Raw Normal View History

2025-05-14 19:51:59 +08:00
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容器
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}"
2025-05-15 09:35:38 +08:00
# 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