64 lines
1.6 KiB
Bash
Executable File
64 lines
1.6 KiB
Bash
Executable File
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}"
|
|
|
|
|
|
# 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
|