✨ 新功能: - 一键自动化部署脚本 (build-infra.sh) - 统一端口配置 (3开头端口,避免冲突) - 多平台Docker构建支持 (AMD64 + ARM64) - Jenkins Configuration as Code (零手动配置) - 完整的服务验证和健康检查 🏗️ 核心组件: - Jenkins LTS + JDK21 (端口38080) - Gitea 1.21 (端口33000, SSH: 32222) - Docker Registry + UI (端口35001/35002) - 统一cicd-network网络 📋 管理工具: - 自动化部署和验证脚本 - 健康检查和日志管理工具 - 完整的文档和故障排查指南 🎯 已验证功能: - 所有服务正常启动和运行 - API和Web界面完全可访问 - 多平台构建环境就绪 - 完整的CI/CD流水线支持 适用环境: Mac Studio M2 + Docker Desktop
4.3 KiB
4.3 KiB
OrbStack配置指南 - 移除国内镜像源
🎯 目标
- 移除所有国内Docker镜像源
- 配置使用原生Docker Hub
- 支持私有GitLab Registry
- 优化网络连接
✅ 已完成配置
1. Docker Daemon配置 (~/.docker/daemon.json)
{
"experimental": true,
"features": {
"buildkit": true
},
"insecure-registries": [
"localhost:5001"
]
}
2. OrbStack配置 (~/.orbstack/config/docker.json)
{
"builder" : {
"gc" : {
"defaultKeepStorage" : "20GB",
"enabled" : true
}
},
"insecure-registries" : [
"192.168.1.83:5002",
"localhost:5001"
],
"ipv6" : true,
"experimental" : false
}
3. Jenkins配置更新
- 移除了国内镜像加速:
JENKINS_UC_DOWNLOAD - 配置使用官方更新源
🔧 网络问题解决方案
✅ 已解决:DNS解析问题
通过修改hosts文件解决Docker Registry DNS解析问题:
# 运行修复脚本
chmod +x deployment/scripts/docker-hosts-fix.sh
./deployment/scripts/docker-hosts-fix.sh
修复内容:
- 阻止Grammarly证书劫持:
127.0.0.1 iosapp-beta.grammarly.com - 添加Docker Registry解析:
54.87.120.168 registry-1.docker.io - 添加认证服务解析:
54.87.120.168 auth.docker.io
ExpressVPN TLS证书问题
如果遇到TLS证书错误,可以:
- 使用hosts文件修复 (推荐)
./deployment/scripts/docker-hosts-fix.sh
- 配置Docker使用特定DNS
# 在 ~/.orbstack/config/docker.json 中添加
{
"dns": ["8.8.8.8", "1.1.1.1"]
}
- ExpressVPN设置优化
- 选择美国洛杉矶服务器
- 禁用"阻止WebRTC"功能
- 使用"Automatic"协议而非"OpenVPN"
🚀 验证步骤
1. 检查配置状态
# 检查Docker info,应该没有Registry Mirrors
docker info | grep -A3 "Registry Mirrors"
# 检查DNS解析
nslookup docker.io
2. 测试镜像拉取
# 测试小镜像
docker pull hello-world:latest
# 测试常用镜像
docker pull alpine:latest
docker pull nginx:latest
3. 本地Registry测试
# 启动本地Registry
cd /Users/brunogao/work/infra
docker-compose -f docker/compose/jenkins-compose.yml up -d registry
# 测试推送
docker tag alpine:latest localhost:5001/alpine:test
docker push localhost:5001/alpine:test
📝 GitLab Registry配置
1. 配置GitLab认证
# 登录GitLab Registry
docker login gitlab.example.com:5050
# 输入用户名和Personal Access Token
2. 推送到GitLab
# 标记镜像
docker tag my-app:latest gitlab.example.com:5050/group/project/my-app:latest
# 推送镜像
docker push gitlab.example.com:5050/group/project/my-app:latest
🛠️ 故障排除
问题1: DNS解析失败
# 解决方案:更新DNS设置
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 1.1.1.1
问题2: TLS证书错误
# 临时解决:重启ExpressVPN
# 或切换到其他美国服务器节点
问题3: 镜像拉取慢
# 检查网络延迟
ping registry-1.docker.io
# 使用CDN加速(仅限官方)
export DOCKER_REGISTRY_MIRROR=""
🎭 性能优化建议
1. 构建缓存优化
# 多阶段构建
FROM node:18-alpine AS builder
# ... 构建步骤
FROM nginx:alpine AS runtime
COPY --from=builder /app/dist /usr/share/nginx/html
2. 镜像大小优化
# 使用.dockerignore
echo "node_modules" >> .dockerignore
echo ".git" >> .dockerignore
# 清理构建缓存
docker system prune -af --volumes
3. Registry策略
- 本地开发:
localhost:5001 - CI/CD: GitLab Registry
- 生产: 私有Registry或Docker Hub
📊 监控和维护
定期检查
# 检查镜像大小
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
# 清理无用镜像
docker image prune -af
# 检查网络配置
docker network ls
自动化脚本
使用 deployment/scripts/orbstack-config.sh 进行定期检查和维护。
✨ 下一步计划
-
配置GitLab CI/CD
- 创建
.gitlab-ci.yml - 配置Runner
- 创建
-
设置监控
- Registry使用情况
- 构建性能指标
-
安全增强
- 镜像扫描
- 漏洞检测
📞 支持
如遇问题:
- 检查ExpressVPN连接状态
- 验证DNS解析
- 查看Docker日志:
docker logs <container> - 运行诊断脚本:
./deployment/scripts/orbstack-config.sh