
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本Docker镜像专为IT-4200 2024秋季学期课程设计,用于封装和运行课程配套的API服务。其核心用途是提供标准化的API运行环境,确保课程相关的开发、测试、作业提交及教学演示过程中环境一致性,简化学生和教师的本地部署流程。
方式1:从Docker Registry拉取(若提供)
bashdocker pull [registry-url]/it4200-class-api:2024-fall
方式2:本地构建(若提供Dockerfile)
bash# 克隆课程代码仓库(假设包含Dockerfile) git clone [课程代码仓库地址] cd [仓库目录] # 构建镜像 docker build -t it4200-class-api:2024-fall .
使用docker run命令启动API服务:
bashdocker run -d \ --name it4200-api \ -p 8080:8080 \ # 端口映射(主机端口:容器端口) -v ./api-data:/app/data \ # 数据持久化(主机目录:容器目录) -e LOG_LEVEL=info \ # 日志级别(debug/info/warn/error) -e API_TIMEOUT=30 \ # 请求超时时间(秒) it4200-class-api:2024-fall
参数说明:
-d:后台运行容器--name:指定容器名称(便于管理)-p:端口映射,默认容器内API服务监听8080端口-v:挂载外部目录到容器内/app/data,用于持久化API数据(如配置文件、日志、作业数据等)-e:设置环境变量(详见4.5节环境变量说明)创建docker-compose.yml文件:
yamlversion: '3.8' services: api: image: it4200-class-api:2024-fall container_name: it4200-api restart: unless-stopped # 容器退出时自动重启(除非手动停止) ports: - "8080:8080" volumes: - ./api-data:/app/data # 数据持久化目录 - ./logs:/app/logs # 日志输出目录(可选) environment: - LOG_LEVEL=info - API_TIMEOUT=30 - DB_CONN_STR=sqlite:///app/data/db.sqlite # 数据库连接字符串(若API依赖数据库) networks: - class-network # 自定义网络(可选,用于与其他服务联动) networks: class-network: driver: bridge
启动服务:
bashdocker-compose up -d
停止服务:
bashdocker-compose down
容器支持通过环境变量自定义服务行为,常用变量如下:
| 环境变量名 | 默认值 | 说明 | 可选值范围 |
|---|---|---|---|
PORT | 8080 | 容器内API服务监听端口 | 1024-65535 |
LOG_LEVEL | info | 日志输出级别 | debug, info, warn, error |
LOG_PATH | /app/logs | 日志文件存储路径 | 容器内可写路径 |
API_TIMEOUT | 30 | HTTP请求超时时间(秒) | 5-300 |
CORS_ENABLED | true | 是否允许跨域请求 | true, false |
DB_CONN_STR | 内置SQLite连接 | 数据库连接字符串(若API依赖数据库) | 取决于数据库类型 |
MAX_REQUEST_SIZE | 10MB | 最大请求体大小 | 1MB-100MB |
服务启动后,通过以下方式验证是否正常运行:
检查容器状态:
bashdocker ps | grep it4200-api # 若状态为Up则表示运行中
访问API健康检查接口(假设提供):
bashcurl http://localhost:8080/health # 预期返回{"status":"ok"}
查看服务日志:
bashdocker logs -f it4200-api # -f参数实时跟踪日志输出
通过-v ./api-data:/app/data挂载的目录包含以下关键数据:
config.yaml)submissions/目录)LOG_PATH)注意:删除容器时,若需保留数据,请勿使用docker rm -v(-v会删除挂载卷)。
定期备份挂载的./api-data目录:
bashtar -czf api-data-backup-$(date +%Y%m%d).tar.gz ./api-data
若启动时提示"Bind for 0.0.0.0:8080 failed",表示主机8080端口已被占用,解决方案:
-p 8081:8080lsof -i:8080找到进程ID后kill -9 [PID]bashdocker logs it4200-api
./api-data目录有读写权限,可执行chmod 755 ./api-dataDB_CONN_STR格式不正确当课程API有版本更新时,重新拉取/构建镜像并重启容器:
bash# 停止并删除旧容器 docker stop it4200-api && docker rm it4200-api # 拉取新镜像(若从Registry获取) docker pull [registry-url]/it4200-class-api:2024-fall # 重新启动容器(使用原参数) docker run -d [原有参数] it4200-class-api:2024-fall
docker rm -f it4200-api && docker rmi it4200-class-api:2024-falldocker-compose.yml中添加对应服务配置并通过DB_CONN_STR等变量关联若使用中遇到问题,可联系课程助教或通过课程LMS平台提交工单。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务