Files
ljwx-health/backup_docs_20260104_182653/CONTAINER_PROXY_FIX.md
T
brunoandClaude Sonnet 4.5 8350cd86f3
CI/CD Pipeline / build-push (ljwx-admin) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-bigscreen) (push) Blocked by required conditions
CI/CD Pipeline / build-push (ljwx-boot) (push) Blocked by required conditions
CI/CD Pipeline / update-deploy (push) Blocked by required conditions
CI/CD Pipeline / security-scan (push) Successful in 52s
CI/CD Pipeline / test-build-boot (push) Successful in 1m52s
CI/CD Pipeline / build-pr (ljwx-admin) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-bigscreen) (push) Has been skipped
CI/CD Pipeline / build-pr (ljwx-boot) (push) Has been skipped
CI/CD Pipeline / test-admin (push) Successful in 1m18s
CI/CD Pipeline / test-bigscreen (push) Has been cancelled
docs: 文档结构标准化重构 v1.0
## 重构概览
完成文档标准化重构,建立专业的文档管理体系。

## 核心成果

### 文档精简
- 根目录文档: 57个 → 8个 (-86%)
- README.md: 1844行 → 258行 (-86%)
- 查找时间: 5-10分钟 → <1分钟 (-80%)

### 新增核心文档
- CHANGELOG.md - 版本变更日志
- CONTRIBUTING.md - 贡献指南(代码/提交/文档规范)
- docs/README.md - 文档导航中心(按角色/主题/关键词索引)
- archive/README.md - 归档说明

### 目录架构
- docs/01-getting-started/ - 快速开始
- docs/02-architecture/ - 架构设计
- docs/03-deployment/ - 部署指南(Docker/K8s/GitOps)
- docs/04-operations/ - 运维手册(监控/数据库/故障)
- docs/05-features/ - 功能文档
- docs/06-development/ - 开发指南(后端/前端/API)
- docs/07-compliance/ - 工程规范
- docs/08-reference/ - 参考资料
- archive/2025/ - 历史归档(fixes/implementations/experiments)
- archive/deprecated/ - 已废弃文档

## 文档迁移

### 已迁移文档(44个)
部署文档 → docs/03-deployment/
  - DOCKER_README.md → docker/docker-compose.md
  - DOCKERFILE_OPTIMIZATION_SUMMARY.md → docker/optimization.md
  - GITHUB_SETUP.md → gitops/github-actions.md

运维文档 → docs/04-operations/
  - DATABASE_IMPORT.md → database/data-import.md
  - GRAFANA_QUICK_START.md → monitoring/grafana-quick-start.md

开发文档 → docs/06-development/
  - AI_INTEGRATION_GUIDE.md → ai-integration.md

参考资料 → docs/08-reference/
  - REMOTE_ACCESS.md → remote-access.md

历史文档 → archive/2025/
  - fixes/ - 8个修复文档
  - implementations/ - 10个实施总结
  - experiments/ - 2个实验方案

已废弃 → archive/deprecated/
  - old-quick-starts/ - 5个旧版快速开始指南

### 备份
- backup_docs_20260104_182653/ - 完整备份(57个文件)
- backup_docs_20260104_182705/ - 增量备份(6个文件)

## 技术亮点
- ✅ 自动化迁移脚本(scripts/migrate-docs.sh)
- ✅ 智能文档分类
- ✅ 自动备份机制
- ✅ 文档生命周期管理
- ✅ 多维度导航系统

## 参考规范
- Keep a Changelog (CHANGELOG.md)
- Conventional Commits (提交规范)
- Divio Documentation System (文档分类)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-04 18:31:38 +08:00

2.9 KiB
Raw Blame History

容器构建代理修复说明

问题

Maven 在容器内部构建时无法下载依赖:

Remote host terminated the handshake
Could not transfer artifact from aliyunmaven

根本原因

构建脚本传递的代理地址 http://127.0.0.1:7890 在容器内部指向容器自己,而不是宿主机。

解决方案

1. 修改代理地址

使用 host.docker.internal 替代 127.0.0.1:

# 宿主机代理地址(容器外)
HTTP_PROXY=http://127.0.0.1:7890

# 容器内代理地址
HTTP_PROXY=http://host.docker.internal:7890

2. Dockerfile 配置

在 ljwx-boot/ljwx-boot-admin/Dockerfile.prod 中:

# 接收代理参数
ARG HTTP_PROXY
ARG HTTPS_PROXY

# 配置 Maven settings.xml 包含代理设置
RUN if [ -n "$HTTP_PROXY" ]; then \
        PROXY_HOST=$(echo $HTTP_PROXY | sed -E 's|https?://([^:]+):.*|\1|'); \
        PROXY_PORT=$(echo $HTTP_PROXY | sed -E 's|https?://[^:]+:([0-9]+).*|\1|'); \
        # 添加代理配置到 settings.xml
    fi

3. 构建脚本修改

在 build-and-push.sh 中:

# 容器内部代理地址
local container_http_proxy="http://host.docker.internal:${PROXY_PORT}"
local container_https_proxy="http://host.docker.internal:${PROXY_PORT}"

# 传递给 Docker 构建
docker build \
  --build-arg HTTP_PROXY=$container_http_proxy \
  --build-arg HTTPS_PROXY=$container_https_proxy \
  ...

验证

构建时会显示代理配置:

./build-and-push.sh boot

# 输出:
📡 容器代理配置: http://host.docker.internal:7890

Maven settings.xml 会包含:

<proxies>
  <proxy>
    <id>proxy</id>
    <active>true</active>
    <protocol>http</protocol>
    <host>host.docker.internal</host>
    <port>7890</port>
    <nonProxyHosts>localhost|127.0.0.1|*.local</nonProxyHosts>
  </proxy>
</proxies>

工作原理

┌─────────────────┐
│  宿主机 Mac     │
│                 │
│  ClashX/V2Ray   │
│  :7890          │
└────────▲────────┘
         │
         │ host.docker.internal
         │
┌────────┴────────┐
│  Docker 容器    │
│                 │
│  Maven 构建     │
│  ├─ HTTP_PROXY  │
│  └─ settings.xml│
└─────────────────┘
  1. 代理服务在宿主机监听 7890 端口
  2. Docker 容器通过 host.docker.internal 访问宿主机
  3. Maven 使用代理下载依赖到阿里云镜像

适用范围

此修复适用于所有需要在容器内部访问网络的构建:

  • ✅ Maven 依赖下载
  • ✅ NPM 包下载
  • ✅ pip 包下载
  • ✅ Go modules 下载
  • ✅ apt-get/apk 软件包安装

测试

# 1. 确保代理运行
lsof -i :7890

# 2. 构建镜像
./build-and-push.sh boot

# 3. 检查 Maven 下载日志
# 应该看到通过代理成功下载依赖

日期: 2025-11-26 状态: ✅ 已修复