Skip to content
Open
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
4b81fd6
1107ci: Add workflow to auto-sync from upstream
Y-C-Fan Nov 7, 2025
6173ea4
style: Fix linting issues in sync-upstream.yml
Y-C-Fan Nov 7, 2025
d3948bf
添加devcontainer配置和claude.md
Y-C-Fan Nov 7, 2025
d313083
1108修复和devcontainer和docker-compose卷挂载路径问题
Y-C-Fan Nov 8, 2025
ef78329
修复环境配置脚本中的路径问题
Y-C-Fan Nov 11, 2025
4a954e1
合并上游Merge pull request #1 from modelscope/main
Y-C-Fan Nov 11, 2025
8796c54
Merge branch 'modelscope:main' into seu-dev
Y-C-Fan Nov 15, 2025
85b49ce
Merge branch 'modelscope:main' into seu-dev
Y-C-Fan Nov 18, 2025
39e4fcd
Merge branch 'modelscope:main' into seu-dev
Y-C-Fan Nov 20, 2025
3ddadee
Merge branch 'modelscope:main' into seu-dev
Y-C-Fan Nov 22, 2025
ca875a0
Merge branch 'modelscope:main' into seu-dev
Y-C-Fan Nov 24, 2025
2cb3542
Merge branch 'modelscope:main' into seu-dev
Y-C-Fan Nov 25, 2025
814e8f8
chore: ignore skx-docs folder
Peterrpeterrr Nov 26, 2025
37dda0a
Add QWEN.md to .gitignore
Peterrpeterrr Nov 26, 2025
7f2ed57
feat: Add skx-docs for role C and integrate with orchestrator
Peterrpeterrr Nov 27, 2025
64702b6
feat: Implement role C external integration modules
Peterrpeterrr Nov 27, 2025
3e560e1
chore: update devcontainer config to match chao/docs branch
Peterrpeterrr Nov 27, 2025
aeebce8
docs: add user operation guide and remove git config guide
Peterrpeterrr Nov 27, 2025
84bc04c
Add pytest integration and update configurations
Peterrpeterrr Nov 27, 2025
4893ff4
Apply pre-commit formatting changes
Peterrpeterrr Nov 27, 2025
94315d8
Update Role C delivery note with latest integration details
Peterrpeterrr Nov 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# 使用Ubuntu作为基础镜像
FROM ubuntu:22.04

# 设置非交互式安装
ENV DEBIAN_FRONTEND=noninteractive

# 设置时区与默认语言环境
ENV TZ=Asia/Shanghai
ENV LANG=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
ENV LANGUAGE=en_US:en

# 先安装CA证书,避免切换HTTPS源后因证书缺失导致失败
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*

# 优先使用可访问的国内镜像源并增加apt重试,减少网络抖动导致的失败
RUN sed -i 's|http://archive.ubuntu.com/ubuntu/|https://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list \
&& sed -i 's|http://security.ubuntu.com/ubuntu/|https://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list \
&& printf 'Acquire::Retries "5";\nAcquire::http::Timeout "30";\n' > /etc/apt/apt.conf.d/80-retries

# 创建用户(避免使用root)
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID

# 更新系统并安装基础软件包
RUN apt-get update && apt-get install -y \
# 基础工具
sudo \
curl \
wget \
git \
vim \
nano \
unzip \
zip \
build-essential \
cmake \
pkg-config \
# Python 3.10相关
python3.10 \
python3-pip \
python3-venv \
python3-dev \
python3-distutils \
# 网络工具
openssh-client \
# 语言环境
locales \
# 其他有用工具
htop \
tree \
jq \
# 配置语言环境并清理缓存
&& locale-gen en_US.UTF-8 \
&& update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
Comment on lines +19 to +60

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

To optimize the Docker image size and build time, it's a good practice to chain RUN commands together. The instructions on lines 19-21 and 29-60 can be combined into a single RUN layer. This avoids running apt-get update and cleaning up apt caches multiple times.


# 创建用户
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
&& chmod 0440 /etc/sudoers.d/$USERNAME

# 切换到用户
USER $USERNAME

# 设置用户环境变量
ENV PATH="/home/${USERNAME}/.local/bin:${PATH}"
ENV PYTHONPATH="/workspace"
ENV PYTHONUNBUFFERED=1

# 升级pip并安装基础Python包
RUN python3.10 -m pip install --user --upgrade pip setuptools wheel

# 创建工作目录
WORKDIR /workspace

# 设置命令提示符
RUN echo 'export PS1="\[\033[01;32m\]\u@devcontainer\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "' >> /home/${USERNAME}/.bashrc

# 添加便利别名
RUN echo 'alias ll="ls -alF"' >> /home/${USERNAME}/.bashrc \
&& echo 'alias la="ls -A"' >> /home/${USERNAME}/.bashrc \
&& echo 'alias l="ls -CF"' >> /home/${USERNAME}/.bashrc

# 切换回root以执行后续命令
USER root

# 在容器启动时执行的脚本
COPY <<EOF /usr/local/bin/post-start.sh
#!/bin/bash
echo "=== MS-Agent DevContainer 已启动 ==="
echo "工作目录: $(pwd)"
echo "Python版本: $(python3.10 --version)"
echo "用户: $(whoami)"
echo "====================================="
EOF

RUN chmod +x /usr/local/bin/post-start.sh

# 设置默认命令
CMD ["/bin/bash"]
178 changes: 178 additions & 0 deletions .devcontainer/PROXY_SETUP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
# DevContainer 代理配置指南

本指南说明如何在 SEU 团队工作区的 DevContainer 中配置网络代理。

## 项目结构说明

```
team-agent/ # 团队工作区(外层)
├── .devcontainer/ # 工作区级 DevContainer 配置 ⭐
│ ├── devcontainer.json # 主配置文件
│ ├── setup-proxy.sh # 代理配置脚本
│ └── PROXY_SETUP.md # 本文档
├── team-seu-ms-agent-private/ # 主项目(内层)
│ └── .devcontainer/ # 项目级配置(用于特定开发)
└── scripts/ # 团队工具脚本
```

## 快速配置方法

### 1. 在主机设置代理环境变量

```bash
# 基本代理配置
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
export NO_PROXY=localhost,127.0.0.1,*.local

# 带认证的代理
export HTTP_PROXY=http://username:[email protected]:8080
export HTTPS_PROXY=http://username:[email protected]:8080

# SOCKS 代理
export HTTP_PROXY=socks5://proxy.company.com:1080
export HTTPS_PROXY=socks5://proxy.company.com:1080
```

### 2. 重新构建 DevContainer

在 VS Code 中:
1. 打开 `team-agent` 目录
2. 按 `F1` 打开命令面板
3. 选择 "Dev Containers: Rebuild Container"

## 自动配置功能

DevContainer 会自动检测代理环境变量并配置:

- ✅ **Git 代理** - 自动配置 `git config --global http.proxy`
- ✅ **pip 代理** - 自动配置 `~/.pip/pip.conf`
- ✅ **npm 代理** - 自动配置 `npm config`
- ✅ **Docker 代理** - 自动配置 `~/.docker/config.json`

## 验证代理配置

进入 DevContainer 后,可以验证代理是否正常工作:

```bash
# 检查 Git 代理
git config --global --get http.proxy

# 检查 pip 代理
cat ~/.pip/pip.conf

# 测试网络连接
curl -I https://www.google.com

# 测试 pip 安装
pip search numpy

# 测试 Git 操作
git ls-remote https://github.com/modelscope/ms-agent
```

## 企业网络环境

### 常见企业代理配置

```bash
# 标准企业代理
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
export NO_PROXY="localhost,127.0.0.1,*.local,*.company.com,company.local"

# 需要认证的企业代理
export HTTP_PROXY=http://domain\\username:[email protected]:8080
export HTTPS_PROXY=http://domain\\username:[email protected]:8080
```

### SSL 证书问题

如果企业使用自签名证书:

```bash
# 临时禁用 SSL 验证(仅开发环境)
export GIT_SSL_NO_VERIFY=1
export NODE_TLS_REJECT_UNAUTHORIZED=0

# 或配置企业 CA 证书
export REQUESTS_CA_BUNDLE=/path/to/company-ca.crt
export NODE_EXTRA_CA_CERTS=/path/to/company-ca.crt
```

## 团队协作建议

### 1. 统一配置文件

团队可以创建 `.env.proxy` 文件(不要提交到 git):

```bash
# .env.proxy(团队内共享,但不要提交到版本控制)
HTTP_PROXY=http://proxy.company.com:8080
HTTPS_PROXY=http://proxy.company.com:8080
NO_PROXY=localhost,127.0.0.1,*.local,*.company.com
```

使用时:
```bash
source .env.proxy
```

### 2. 开发环境区分

- **工作区 DevContainer**:用于日常开发和团队协作
- **项目 DevContainer**:用于特定项目的特殊配置

### 3. 文档更新

更新团队文档,包含代理配置说明:
```markdown
## 网络要求
- 如需使用代理,请设置 HTTP_PROXY 和 HTTPS_PROXY 环境变量
- 重新构建 DevContainer 以应用代理配置
```

## 故障排除

### 1. 代理不生效

```bash
# 检查环境变量是否正确传递
echo $HTTP_PROXY
echo $HTTPS_PROXY

# 手动重新配置
bash ~/.devcontainer/setup-proxy.sh
```

### 2. SSL 证书错误

```bash
# 对于 pip
pip config set global.trusted-host "pypi.org pypi.python.org files.pythonhosted.org"

# 对于 npm
npm config set strict-ssl false
```

### 3. 连接超时

```bash
# 增加超时时间
git config --global http.lowSpeedTime 999999
pip config set global.timeout 60
```

## 安全注意事项

1. **不要在代码中硬编码代理密码**
2. **使用环境变量传递敏感信息**
3. **`.env.proxy` 文件应加入 `.gitignore`**
4. **定期轮换代理认证信息**

## 联系支持

如遇到代理配置问题,请联系:
- 网络管理员:确认代理地址和端口
- 团队负责人:确认团队配置标准
- DevContainer 维护者:报告配置问题
108 changes: 108 additions & 0 deletions .devcontainer/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# DevContainer 使用指南

## 概述

已为您配置了完整的DevContainer开发环境,基于Ubuntu 22.04,包含所有MS-Agent项目开发所需的工具和配置。

## 快速开始

### 方法一:使用VS Code(推荐)

1. 在VS Code中打开项目文件夹
2. 安装"Dev Containers"扩展
3. 按`Ctrl+Shift+P`,选择"Dev Containers: Reopen in Container"
4. 等待容器构建完成

### 方法二:使用命令行

```bash
# 构建并启动容器
./.devcontainer/devctl.sh build
./.devcontainer/devctl.sh up

# 进入容器
./.devcontainer/devctl.sh shell
```

## 环境特性

### 🐧 Ubuntu系统
- Ubuntu 22.04基础镜像
- 非root用户(vscode)运行
- 完整的sudo权限

### 🐍 Python环境
- Python 3.x 预安装
- pip包管理器
- 自动安装项目依赖

### 🛠️ 开发工具
- **基础工具**: git, curl, wget, vim, nano
- **编译工具**: build-essential, cmake
- **VS Code扩展**: Python, Black, Pylint, Jupyter等

### 🔧 自动化配置
- 代码格式化(Black)
- 导入排序(isort)
- 代码检查(Pylint)
- 保存时自动格式化

## 端口映射

| 端口 | 用途 |
|------|------|
| 8888 | Jupyter Notebook |
| 8080 | Web应用服务 |
| 3000 | 其他开发服务 |

## 管理命令

使用`./.devcontainer/devctl.sh`脚本管理容器:

```bash
# 构建镜像
./.devcontainer/devctl.sh build

# 启动容器
./.devcontainer/devctl.sh up

# 停止容器
./.devcontainer/devctl.sh down

# 进入shell
./.devcontainer/devctl.sh shell

# 查看状态
./.devcontainer/devctl.sh status

# 查看日志
./.devcontainer/devctl.sh logs

# 清理资源
./.devcontainer/devctl.sh clean
```

## 文件结构

```
.devcontainer/
├── devcontainer.json # VS Code配置
├── Dockerfile # 容器构建文件
├── docker-compose.yml # 容器编排配置
├── devctl.sh # 管理脚本
└── README.md # 使用指南
```

## 开发工作流

1. **首次使用**: VS Code → "Reopen in Container"
2. **日常开发**: 直接在容器中编码和测试
3. **同步更新**: 容器内运行 `./sync-upstream.sh`
4. **调试代码**: VS Code调试器支持Python调试

## 注意事项

- 所有修改都在容器内进行,不会影响宿主机
- 代码会自动挂载到容器的`/workspace`目录
- 容器停止后数据会保留(卷挂载)
- 建议定期备份重要代码到Git仓库
Loading