Mars 6ddba3e722 Initial commit
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 文件
2025-03-25 16:14:03 +08:00

143 lines
3.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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