
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
提供https://git-scm.com/docs/gitweb——Git仓库的Web界面(Git仓库的Web前端)——的非官方Docker镜像。
docker-compose.yml和Makefile的演示采用https://semver.org/的MAJOR.MINOR.PATCH版本格式。除三位版本号外,也可使用两位或一位版本号,分别指向对应子系列的最新版本。`latest`标签指向基于仓库最新提交构建的镜像。
mlan/gitweb仓库包含多阶段构建,可通过base和full标签选择不同构建版本:
base标签:仅包含Gitwebfull标签:包含Gitweb及代码高亮支持例如,若最新版本为1.0.0,则latest、1.0.0、1.0、1均指向同一镜像。
可通过命令行启动mlan/gitweb容器。以下示例假设您位于Git目录中,启动后可通过http://localhost:8080访问Web服务器:
bashdocker run -d --name repoweb -e PROJECTS_LIST= -v $(pwd)/.git:/var/lib/git:ro -p 127.0.0.1:8080:80 docker.xuanyuan.run/mlan/gitweb
您也可尝试https://github.com/mlan/docker-gitweb提供的演示。
使用Docker Compose,以下docker-compose.yml文件将启动Gitolite服务器和Gitweb服务器:
yamlname: demo services: repo: image: docker.xuanyuan.run/jgiannuzzi/gitolite ports: - "22:22" volumes: - repo-data:/var/lib/git repo-gui: image: docker.xuanyuan.run/mlan/gitweb ports: - "8080:80" depends_on: - repo volumes: - repo-data:/var/lib/git:ro volumes: repo-data:
上述示例中,repo-data卷需至少包含一个Git仓库才能显示内容。
本仓库包含demo目录,其中包含docker-compose.yml文件和便捷的Makefile。要运行演示,请先克隆https://github.com/mlan/docker-gitweb:
bashgit clone https://github.com/mlan/docker-gitweb.git
进入demo目录后,可通过以下命令启动容器:
bashmake up
通过以下命令访问Gitweb服务器:
bashmake web
测试完成后,可通过以下命令销毁测试容器:
bashmake destroy
启动mlan/gitweb容器时,可通过传递环境变量或命令行参数配置Gitweb。
PROJECTROOT
项目所在目录。不得以斜杠结尾。
默认值:PROJECTROOT=/var/lib/git/repositories
PROJECTS_LIST
定义Gitweb读取Git项目列表的文件。若设为空字符串,Gitweb将扫描PROJECTROOT目录。
默认值:PROJECTS_LIST=/var/lib/git/projects.list
若Gitolite和Gitweb在同一台机器上运行,通过共享文件系统即可浏览Gitolite仓库。上述Docker Compose示例即采用此方式。
repo-data卷使容器共享文件,两个容器中的挂载点类似(repo-data:/var/lib/git),区别在于Gitweb容器仅需只读挂载。PROJECTROOT和PROJECTS_LIST的默认值已足够使用。
也可通过以下Docker命令启动Gitweb容器:
bashdocker run -d --name repo-gui -v repo-data:/var/lib/git:ro -p 127.0.0.1:8080:80 docker.xuanyuan.run/mlan/gitweb
容器启动时,执行脚本docker-entrypoint.sh,包含两个阶段:1) 运行/etc/docker/entry.d/中的所有入口脚本;2) 执行命令CMD ["nginx", "-g", "daemon off;"]。
入口脚本负责生成配置、启动进程等任务。
上述入口脚本及其他工具脚本在构建阶段复制到镜像中。源文件树设计为便于通过通配符匹配扫描源模块目录,将文件复制到正确位置。目录名指示文件类型,以便复制到对应位置。Dockerfile中实现此功能的代码片段如下:
dockerfileCOPY src/*/bin $DOCKER_BIN_DIR/ COPY src/*/entry.d $DOCKER_ENTRY_DIR/ COPY src/*/config $DOCKER_CONF_DIR/ COPY src/*/envsubst $DOCKER_ENVSUBST_DIR/
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务