ci(docker-services): change chinese printing message to english (#4599)

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
John Guo
2026-01-09 16:04:41 +08:00
committed by GitHub
parent 40f4d9f8ec
commit cb26931378

View File

@ -1,15 +1,15 @@
#!/bin/bash
#!/usr/bin/env bash
#
# GoFrame Docker Services Manager
# 用于本地开发时管理测试用的Docker服务
# For managing Docker services used in local development and testing
#
set -e
# 容器名前缀
# Container name prefix
PREFIX="goframe"
# 颜色定义
# Color definitions
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
@ -17,13 +17,13 @@ BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color
# 服务定义
# Service definitions
declare -A SERVICES
declare -A SERVICE_PORTS
declare -A SERVICE_ENVS
declare -A SERVICE_OPTS
# 基础服务
# Basic services
SERVICES["etcd"]="bitnamilegacy/etcd:3.4.24"
SERVICE_PORTS["etcd"]="2379:2379"
SERVICE_ENVS["etcd"]="-e ALLOW_NONE_AUTHENTICATION=yes"
@ -70,18 +70,18 @@ SERVICE_OPTS["gaussdb"]="--privileged=true"
SERVICES["zookeeper"]="zookeeper:3.8"
SERVICE_PORTS["zookeeper"]="2181:2181"
# 服务分组
# Service groups
GROUP_DB="mysql mariadb postgres mssql oracle dm gaussdb clickhouse"
GROUP_CACHE="redis etcd"
GROUP_REGISTRY="polaris zookeeper"
GROUP_ALL="etcd redis mysql mariadb postgres mssql clickhouse polaris oracle dm gaussdb zookeeper"
# 工作目录
# Working directories
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
WORKFLOW_DIR="$PROJECT_ROOT/.github/workflows"
# 打印带颜色的消息
# Print colored messages
print_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
@ -98,24 +98,24 @@ print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 检查Docker是否可用
# Check if Docker is available
check_docker() {
if ! command -v docker &> /dev/null; then
print_error "Docker 未安装或不在PATH"
print_error "Docker is not installed or not in PATH"
exit 1
fi
if ! docker info &> /dev/null; then
print_error "Docker 服务未运行"
print_error "Docker service is not running"
exit 1
fi
}
# 获取容器名
# Get container name
get_container_name() {
echo "${PREFIX}-$1"
}
# 启动单个服务
# Start a single service
start_service() {
local service=$1
local container_name=$(get_container_name "$service")
@ -125,39 +125,39 @@ start_service() {
local opts="${SERVICE_OPTS[$service]}"
if [ -z "$image" ]; then
print_error "未知服务: $service"
print_error "Unknown service: $service"
return 1
fi
# 检查容器是否已存在
# Check if container already exists
if docker ps -a --format '{{.Names}}' | grep -q "^${container_name}$"; then
if docker ps --format '{{.Names}}' | grep -q "^${container_name}$"; then
print_warning "$service 已在运行"
print_warning "$service is already running"
return 0
else
print_info "启动已存在的容器 $service..."
print_info "Starting existing container $service..."
docker start "$container_name" > /dev/null
print_success "$service 已启动"
print_success "$service started"
return 0
fi
fi
print_info "启动 $service..."
print_info "Starting $service..."
# 构建docker run命令
# Build docker run command
local cmd="docker run -d --name $container_name"
# 添加端口映射
# Add port mappings
for port in $ports; do
cmd="$cmd -p $port"
done
# 添加环境变量
# Add environment variables
if [ -n "$envs" ]; then
cmd="$cmd $envs"
fi
# 添加其他选项
# Add other options
if [ -n "$opts" ]; then
cmd="$cmd $opts"
fi
@ -165,42 +165,42 @@ start_service() {
cmd="$cmd $image"
if eval "$cmd" > /dev/null 2>&1; then
print_success "$service 已启动 (容器: $container_name)"
print_success "$service started (container: $container_name)"
else
print_error "$service 启动失败"
print_error "Failed to start $service"
return 1
fi
}
# 停止单个服务
# Stop a single service
stop_service() {
local service=$1
local container_name=$(get_container_name "$service")
if docker ps --format '{{.Names}}' | grep -q "^${container_name}$"; then
print_info "停止 $service..."
print_info "Stopping $service..."
docker stop "$container_name" > /dev/null
print_success "$service 已停止"
print_success "$service stopped"
else
print_warning "$service 未在运行"
print_warning "$service is not running"
fi
}
# 删除单个服务
# Remove a single service
remove_service() {
local service=$1
local container_name=$(get_container_name "$service")
if docker ps -a --format '{{.Names}}' | grep -q "^${container_name}$"; then
print_info "删除 $service..."
print_info "Removing $service..."
docker rm -f "$container_name" > /dev/null
print_success "$service 已删除"
print_success "$service removed"
else
print_warning "$service 容器不存在"
print_warning "$service container does not exist"
fi
}
# 查看服务日志
# View service logs
logs_service() {
local service=$1
local container_name=$(get_container_name "$service")
@ -209,12 +209,12 @@ logs_service() {
if docker ps -a --format '{{.Names}}' | grep -q "^${container_name}$"; then
docker logs --tail "$lines" -f "$container_name"
else
print_error "$service 容器不存在"
print_error "$service container does not exist"
return 1
fi
}
# 启动docker-compose服务
# Start docker-compose service
start_compose_service() {
local service=$1
local compose_file=""
@ -233,22 +233,22 @@ start_compose_service() {
compose_file="$WORKFLOW_DIR/consul/docker-compose.yml"
;;
*)
print_error "未知compose服务: $service"
print_error "Unknown compose service: $service"
return 1
;;
esac
if [ -f "$compose_file" ]; then
print_info "启动 $service (docker-compose)..."
print_info "Starting $service (docker-compose)..."
docker compose -f "$compose_file" up -d
print_success "$service 已启动"
print_success "$service started"
else
print_error "compose文件不存在: $compose_file"
print_error "Compose file does not exist: $compose_file"
return 1
fi
}
# 停止docker-compose服务
# Stop docker-compose service
stop_compose_service() {
local service=$1
local compose_file=""
@ -267,22 +267,22 @@ stop_compose_service() {
compose_file="$WORKFLOW_DIR/consul/docker-compose.yml"
;;
*)
print_error "未知compose服务: $service"
print_error "Unknown compose service: $service"
return 1
;;
esac
if [ -f "$compose_file" ]; then
print_info "停止 $service (docker-compose)..."
print_info "Stopping $service (docker-compose)..."
docker compose -f "$compose_file" down
print_success "$service 已停止"
print_success "$service stopped"
else
print_error "compose文件不存在: $compose_file"
print_error "Compose file does not exist: $compose_file"
return 1
fi
}
# 显示服务状态
# Show service status
show_status() {
echo ""
echo -e "${CYAN}========== GoFrame Docker Services Status ==========${NC}"
@ -338,12 +338,12 @@ show_status() {
echo ""
}
# 显示服务信息
# Show service information
show_service_info() {
echo ""
echo -e "${CYAN}========== Available Services ==========${NC}"
echo ""
echo -e "${YELLOW}基础服务 (独立容器):${NC}"
echo -e "${YELLOW}Basic Services (standalone containers):${NC}"
echo ""
printf "%-15s %-50s %s\n" "SERVICE" "IMAGE" "PORTS"
echo "--------------------------------------------------------------------------------"
@ -353,61 +353,61 @@ show_service_info() {
done
echo ""
echo -e "${YELLOW}Compose服务 (多容器):${NC}"
echo " apollo - Apollo配置中心 (8080, 8070, 8060, 13306)"
echo " nacos - Nacos注册中心 (8848, 9848, 9555)"
echo " redis-cluster - Redis主从+哨兵集群 (6380-6382, 26379-26381)"
echo " consul - Consul服务发现 (8500, 8600)"
echo -e "${YELLOW}Compose Services (multi-container):${NC}"
echo " apollo - Apollo Config Center (8080, 8070, 8060, 13306)"
echo " nacos - Nacos Registry (8848, 9848, 9555)"
echo " redis-cluster - Redis Primary-Replica + Sentinel Cluster (6380-6382, 26379-26381)"
echo " consul - Consul Service Discovery (8500, 8600)"
echo ""
echo -e "${YELLOW}服务分组:${NC}"
echo " db - 数据库: $GROUP_DB"
echo " cache - 缓存: $GROUP_CACHE"
echo " registry - 注册中心: $GROUP_REGISTRY"
echo " all - 所有基础服务"
echo -e "${YELLOW}Service Groups:${NC}"
echo " db - Databases: $GROUP_DB"
echo " cache - Cache: $GROUP_CACHE"
echo " registry - Registry: $GROUP_REGISTRY"
echo " all - All basic services"
echo ""
}
# 显示帮助
# Show help
show_help() {
echo ""
echo -e "${CYAN}GoFrame Docker Services Manager${NC}"
echo ""
echo "用法: $0 <command> [service|group] [options]"
echo "Usage: $0 <command> [service|group] [options]"
echo ""
echo "命令:"
echo " start <service|group> 启动服务或服务组"
echo " stop <service|group> 停止服务或服务组"
echo " restart <service|group> 重启服务或服务组"
echo " remove <service|group> 删除服务容器"
echo " logs <service> [lines] 查看服务日志 (默认100行)"
echo " status 显示所有服务状态"
echo " info 显示可用服务信息"
echo " clean 删除所有goframe容器"
echo " pull [service] 拉取镜像"
echo "Commands:"
echo " start <service|group> Start service or service group"
echo " stop <service|group> Stop service or service group"
echo " restart <service|group> Restart service or service group"
echo " remove <service|group> Remove service container"
echo " logs <service> [lines] View service logs (default 100 lines)"
echo " status Show all service status"
echo " info Show available service information"
echo " clean Remove all goframe containers"
echo " pull [service] Pull images"
echo ""
echo "服务:"
echo " 基础服务: etcd, redis, mysql, mariadb, postgres, mssql,"
echo " clickhouse, polaris, oracle, dm, gaussdb, zookeeper"
echo "Services:"
echo " Basic: etcd, redis, mysql, mariadb, postgres, mssql,"
echo " clickhouse, polaris, oracle, dm, gaussdb, zookeeper"
echo " Compose: apollo, nacos, redis-cluster, consul"
echo ""
echo "服务组:"
echo " db - 所有数据库服务"
echo " cache - 缓存服务 (redis, etcd)"
echo " registry - 注册中心 (polaris, zookeeper)"
echo " all - 所有基础服务"
echo "Service Groups:"
echo " db - All database services"
echo " cache - Cache services (redis, etcd)"
echo " registry - Registry services (polaris, zookeeper)"
echo " all - All basic services"
echo ""
echo "示例:"
echo " $0 start mysql # 启动MySQL"
echo " $0 start db # 启动所有数据库"
echo " $0 start all # 启动所有基础服务"
echo " $0 start apollo # 启动Apollo (compose)"
echo " $0 stop all # 停止所有基础服务"
echo " $0 logs mysql 50 # 查看MySQL最近50行日志"
echo " $0 status # 查看服务状态"
echo "Examples:"
echo " $0 start mysql # Start MySQL"
echo " $0 start db # Start all databases"
echo " $0 start all # Start all basic services"
echo " $0 start apollo # Start Apollo (compose)"
echo " $0 stop all # Stop all basic services"
echo " $0 logs mysql 50 # View last 50 lines of MySQL logs"
echo " $0 status # View service status"
echo ""
}
# 解析服务组
# Parse service groups
parse_services() {
local input=$1
case $input in
@ -429,7 +429,7 @@ parse_services() {
esac
}
# 判断是否为compose服务
# Check if it's a compose service
is_compose_service() {
local service=$1
case $service in
@ -442,7 +442,7 @@ is_compose_service() {
esac
}
# 拉取镜像
# Pull images
pull_images() {
local services=$1
@ -452,28 +452,28 @@ pull_images() {
for service in $services; do
if [ -n "${SERVICES[$service]}" ]; then
print_info "拉取镜像: ${SERVICES[$service]}"
print_info "Pulling image: ${SERVICES[$service]}"
docker pull "${SERVICES[$service]}"
fi
done
}
# 清理所有goframe容器
# Clean all goframe containers
clean_all() {
print_info "删除所有 $PREFIX 容器..."
print_info "Removing all $PREFIX containers..."
local containers=$(docker ps -a --filter "name=$PREFIX" --format '{{.Names}}')
if [ -n "$containers" ]; then
for container in $containers; do
docker rm -f "$container" > /dev/null
print_success "已删除: $container"
print_success "Removed: $container"
done
else
print_info "没有找到 $PREFIX 容器"
print_info "No $PREFIX containers found"
fi
}
# 获取服务状态标记
# Get service status mark
get_service_status_mark() {
local service=$1
local container_name=$(get_container_name "$service")
@ -485,7 +485,7 @@ get_service_status_mark() {
fi
}
# 获取compose服务状态标记
# Get compose service status mark
get_compose_status_mark() {
local service=$1
local running=0
@ -512,20 +512,20 @@ get_compose_status_mark() {
fi
}
# 服务选择菜单
# Service selection menu
select_service_menu() {
local action=$1
local action_name=$2
echo ""
echo -e "${CYAN}========== 选择${action_name}的服务 ==========${NC}"
echo -e "${CYAN}========== Select Service to ${action_name} ==========${NC}"
# 停止/重启/日志操作时显示运行状态
# Show running status for stop/restart/logs operations
if [[ "$action" == "stop" || "$action" == "restart" || "$action" == "logs" ]]; then
echo -e " (${GREEN}*${NC} 表示正在运行)"
echo -e " (${GREEN}*${NC} indicates running)"
fi
echo ""
echo -e "${YELLOW}基础服务:${NC}"
echo -e "${YELLOW}Basic Services:${NC}"
printf " %b1) etcd %b2) redis %b3) mysql\n" \
"$(get_service_status_mark etcd)" "$(get_service_status_mark redis)" "$(get_service_status_mark mysql)"
printf " %b4) mariadb %b5) postgres %b6) mssql\n" \
@ -535,18 +535,18 @@ select_service_menu() {
printf " %b10) dm %b11) gaussdb %b12) zookeeper\n" \
"$(get_service_status_mark dm)" "$(get_service_status_mark gaussdb)" "$(get_service_status_mark zookeeper)"
echo ""
echo -e "${YELLOW}Compose服务:${NC}"
echo -e "${YELLOW}Compose Services:${NC}"
printf " %b13) apollo %b14) nacos %b15) redis-cluster\n" \
"$(get_compose_status_mark apollo)" "$(get_compose_status_mark nacos)" "$(get_compose_status_mark redis-cluster)"
printf " %b16) consul\n" "$(get_compose_status_mark consul)"
echo ""
echo -e "${YELLOW}服务组:${NC}"
echo " 17) db (所有数据库) 18) cache (缓存服务)"
echo " 19) registry (注册中心) 20) all (所有基础服务)"
echo -e "${YELLOW}Service Groups:${NC}"
echo " 17) db (all databases) 18) cache (cache services)"
echo " 19) registry (registry services) 20) all (all basic services)"
echo ""
echo " 0) 返回上级菜单"
echo " 0) Back to main menu"
echo ""
read -p "请选择 [0-20]: " svc_choice
read -p "Select [0-20]: " svc_choice
local svc=""
case $svc_choice in
@ -572,7 +572,7 @@ select_service_menu() {
20) svc="all" ;;
0) return ;;
*)
print_error "无效选择"
print_error "Invalid selection"
return
;;
esac
@ -614,9 +614,9 @@ select_service_menu() {
;;
logs)
if is_compose_service "$svc"; then
print_error "Compose服务请使用 docker compose logs 查看"
print_error "For Compose services, please use 'docker compose logs'"
else
read -p "显示行数 (默认100): " lines
read -p "Number of lines (default 100): " lines
lines=${lines:-100}
logs_service "$svc" "$lines"
fi
@ -627,40 +627,40 @@ select_service_menu() {
esac
}
# 交互式菜单
# Interactive menu
interactive_menu() {
while true; do
echo ""
echo -e "${CYAN}========== GoFrame Docker Services Manager ==========${NC}"
echo ""
echo " 1) 启动服务"
echo " 2) 停止服务"
echo " 3) 重启服务"
echo " 4) 删除服务"
echo " 5) 查看日志"
echo " 6) 查看状态"
echo " 7) 服务信息"
echo " 8) 清理所有容器"
echo " 9) 拉取镜像"
echo " 0) 退出"
echo " 1) Start Service"
echo " 2) Stop Service"
echo " 3) Restart Service"
echo " 4) Remove Service"
echo " 5) View Logs"
echo " 6) View Status"
echo " 7) Service Info"
echo " 8) Clean All Containers"
echo " 9) Pull Images"
echo " 0) Exit"
echo ""
read -p "请选择操作 [0-9]: " choice
read -p "Select operation [0-9]: " choice
case $choice in
1)
select_service_menu "start" "启动"
select_service_menu "start" "Start"
;;
2)
select_service_menu "stop" "停止"
select_service_menu "stop" "Stop"
;;
3)
select_service_menu "restart" "重启"
select_service_menu "restart" "Restart"
;;
4)
select_service_menu "remove" "删除"
select_service_menu "remove" "Remove"
;;
5)
select_service_menu "logs" "查看日志"
select_service_menu "logs" "View Logs"
;;
6)
show_status
@ -669,26 +669,26 @@ interactive_menu() {
show_service_info
;;
8)
read -p "确认删除所有goframe容器? [y/N]: " confirm
read -p "Confirm removing all goframe containers? [y/N]: " confirm
if [[ "$confirm" =~ ^[Yy]$ ]]; then
clean_all
fi
;;
9)
select_service_menu "pull" "拉取镜像"
select_service_menu "pull" "Pull Images"
;;
0)
echo "再见!"
echo "Goodbye!"
exit 0
;;
*)
print_error "无效选择"
print_error "Invalid selection"
;;
esac
done
}
# 主函数
# Main function
main() {
check_docker
@ -704,7 +704,7 @@ main() {
case $command in
start)
if [ -z "$target" ]; then
print_error "请指定服务名或服务组"
print_error "Please specify service name or service group"
exit 1
fi
if is_compose_service "$target"; then
@ -717,7 +717,7 @@ main() {
;;
stop)
if [ -z "$target" ]; then
print_error "请指定服务名或服务组"
print_error "Please specify service name or service group"
exit 1
fi
if is_compose_service "$target"; then
@ -730,7 +730,7 @@ main() {
;;
restart)
if [ -z "$target" ]; then
print_error "请指定服务名或服务组"
print_error "Please specify service name or service group"
exit 1
fi
if is_compose_service "$target"; then
@ -745,7 +745,7 @@ main() {
;;
remove|rm)
if [ -z "$target" ]; then
print_error "请指定服务名或服务组"
print_error "Please specify service name or service group"
exit 1
fi
for service in $(parse_services "$target"); do
@ -754,7 +754,7 @@ main() {
;;
logs)
if [ -z "$target" ]; then
print_error "请指定服务名"
print_error "Please specify service name"
exit 1
fi
logs_service "$target" "${extra:-100}"
@ -775,7 +775,7 @@ main() {
show_help
;;
*)
print_error "未知命令: $command"
print_error "Unknown command: $command"
show_help
exit 1
;;