feat: 完成 Zsh 插件配置脚本的优化和测试 - 修复 autojump 配置冲突 - 清理重复的插件安装 - 优化脚本结构和注释 feat: 优化shell脚本 - 1. 增强错误处理和恢复机制 2. 添加网络连接优化和镜像源支持 3. 改进进度显示和用户交互 4. 优化配置文件管理和备份 5. 改进插件管理机制 6. 增强依赖检查和安装 7. 添加完整的日志记录功能 8. 修复字体安装相关问题 docs: 完善shell、system和utils部分的README文档 - 1. 添加详细的脚本说明和使用方法 2. 补充依赖要求和注意事项 3. 添加常见问题解答 4. 更新版本日志 feat(editor): 优化 neovim 和 nvchad 安装脚本,添加性能优化配置和详细文档 feat: 优化Python开发环境安装脚本,分离基础包和机器学习包,修复virtualenvwrapper配置 feat: 优化开发工具安装脚本,统一使用common.sh中的函数,改进错误处理 fix: 修复DNMP安装脚本,跳过自动配置PHP开发环境 fix: 提交删除的 init.sh 和 mysql.sh 文件
143 lines
3.9 KiB
Bash
143 lines
3.9 KiB
Bash
#!/bin/bash
|
||
|
||
# 导入公共函数
|
||
source "$(dirname "$0")/../utils/common.sh"
|
||
|
||
# 安装Docker Engine
|
||
install_docker_engine() {
|
||
log_info "安装Docker Engine..."
|
||
|
||
# 卸载旧版本
|
||
apt-get remove -y docker docker-engine docker.io containerd runc || true
|
||
|
||
# 安装依赖
|
||
check_dependencies apt-transport-https ca-certificates curl gnupg lsb-release
|
||
|
||
# 添加Docker官方GPG密钥
|
||
if ! curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg; then
|
||
local mirror_url=$(get_mirror_url "https://download.docker.com/linux/debian/gpg" "github")
|
||
curl -fsSL "$mirror_url" | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||
fi
|
||
|
||
# 设置稳定版仓库
|
||
echo \
|
||
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
|
||
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||
|
||
# 安装Docker Engine
|
||
apt-get update
|
||
apt-get install -y docker-ce docker-ce-cli containerd.io
|
||
|
||
# 启动Docker服务
|
||
systemctl start docker
|
||
systemctl enable docker
|
||
|
||
# 检查Docker状态
|
||
if ! systemctl is-active --quiet docker; then
|
||
log_error "Docker服务启动失败"
|
||
exit 1
|
||
fi
|
||
|
||
log_success "Docker Engine安装完成"
|
||
}
|
||
|
||
# 安装Docker Compose
|
||
install_docker_compose() {
|
||
log_info "安装Docker Compose..."
|
||
|
||
# 下载Docker Compose
|
||
local compose_url="https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)"
|
||
if ! curl -L "$compose_url" -o /usr/local/bin/docker-compose; then
|
||
local mirror_url=$(get_mirror_url "$compose_url" "github")
|
||
curl -L "$mirror_url" -o /usr/local/bin/docker-compose
|
||
fi
|
||
|
||
# 添加执行权限
|
||
chmod +x /usr/local/bin/docker-compose
|
||
|
||
# 创建命令补全
|
||
local completion_url="https://raw.githubusercontent.com/docker/compose/master/contrib/completion/bash/docker-compose"
|
||
if ! curl -L "$completion_url" -o /etc/bash_completion.d/docker-compose; then
|
||
local mirror_url=$(get_mirror_url "$completion_url" "github")
|
||
curl -L "$mirror_url" -o /etc/bash_completion.d/docker-compose
|
||
fi
|
||
|
||
log_success "Docker Compose安装完成"
|
||
}
|
||
|
||
# 配置Docker
|
||
configure_docker() {
|
||
log_info "配置Docker..."
|
||
|
||
# 创建docker用户组
|
||
groupadd docker || true
|
||
|
||
# 将当前用户添加到docker组
|
||
usermod -aG docker $CURRENT_USER
|
||
|
||
# 创建docker配置目录
|
||
mkdir -p /etc/docker
|
||
|
||
# 备份现有配置
|
||
if [ -f "/etc/docker/daemon.json" ]; then
|
||
manage_config "backup" "/etc/docker/daemon.json"
|
||
fi
|
||
|
||
# 配置Docker守护进程
|
||
cat > /etc/docker/daemon.json << EOF
|
||
{
|
||
"exec-opts": ["native.cgroupdriver=systemd"],
|
||
"log-driver": "json-file",
|
||
"log-opts": {
|
||
"max-size": "100m",
|
||
"max-file": "3"
|
||
},
|
||
"storage-driver": "overlay2",
|
||
"data-root": "/var/lib/docker",
|
||
"registry-mirrors": [
|
||
"https://mirror.ccs.tencentyun.com",
|
||
"https://registry.docker-cn.com",
|
||
"https://docker.mirrors.ustc.edu.cn"
|
||
]
|
||
}
|
||
EOF
|
||
|
||
# 重启Docker服务
|
||
systemctl daemon-reload
|
||
systemctl restart docker
|
||
|
||
log_success "Docker配置完成"
|
||
}
|
||
|
||
# 主函数
|
||
main() {
|
||
# 检查root权限
|
||
check_root
|
||
|
||
# 获取用户信息
|
||
get_user_info
|
||
|
||
# 设置日志
|
||
setup_logging
|
||
|
||
log_info "开始安装Docker..."
|
||
|
||
# 安装Docker Engine
|
||
install_docker_engine
|
||
|
||
# 安装Docker Compose
|
||
install_docker_compose
|
||
|
||
# 配置Docker
|
||
configure_docker
|
||
|
||
log_success "Docker安装完成!"
|
||
log_info "请重新登录以使docker组权限生效。"
|
||
log_info "Windows端请手动安装Docker Desktop: https://www.docker.com/products/docker-desktop"
|
||
}
|
||
|
||
# 设置清理函数
|
||
trap cleanup EXIT
|
||
|
||
# 执行主函数
|
||
main |