docker/mobywebsite Docker Image
用于运行Moby项目官方网站的Docker镜像,提供Moby开源容器化系统相关的信息展示与访问服务。
Moby Website 镜像文档
1. 镜像概述和主要用途
Moby Website镜像是Moby项目官方网站的Docker化实现,基于Jekyll静态站点生成器构建,用于展示Moby项目的文档、新闻、项目信息及用户资源。该镜像支持本地开发调试、测试环境验证及生产环境部署,提供完整的网站生命周期管理能力。
2. 核心功能和特性
- Jekyll构建支持:集成Jekyll工具链,自动将Markdown源文件转换为静态HTML网站
- 本地开发优化:支持文件变更自动刷新,实时预览网站效果
- GitHub API集成:动态拉取GitHub项目数据和用户信息,丰富网站内容
- API速率限制控制:通过环境变量配置GitHub OAuth凭证,提升API调用配额
- 多环境部署:支持本地开发、测试(Staging)和生产环境的自动化构建与部署流程
- 生产级性能:基于Nginx运行,结合CloudFront缓存和SSL终止,确保高可用性
3. 使用场景和适用范围
- 开发人员:本地开发调试网站内容、样式和功能
- 设计团队:在测试环境验证网站改版效果,无需影响生产环境
- 运维团队:通过标准化流程实现生产环境的自动构建、部署和更新
- Moby项目:作为官方网站的生产运行载体,对外展示项目信息
4. 详细使用方法和配置说明
4.1 本地开发
4.1.1 基础开发环境启动
在项目docs目录下执行以下命令,启动本地开发服务器,网站可通过localhost:4000访问,文件修改后自动刷新:
bashdocker run -ti -v "$PWD":/usr/src/app -p "4000:4000" docker.xuanyuan.run/starefossen/github-pages
4.1.2 测试未来日期博客文章
如需测试包含未来发布日期的博客文章,使用以下命令启用未来日期内容预览:
bashdocker run -ti -v "$PWD":/usr/src/app -p "4000:4000" docker.xuanyuan.run/starefossen/github-pages \ jekyll serve -d /_site --watch --force_polling -H 0.0.0.0 -P 4000 --future true
4.2 处理GitHub API速率限制
网站通过GitHub API动态获取数据时,未认证请求存在60次/时段的速率限制。若日志中出现API rate limit exceeded错误,需配置GitHub OAuth凭证提升至5000次/时段:
- 在https://github.com/settings/developers创建OAuth应用,获取`Client ID
和Client Secret` - 通过环境变量传入凭证启动容器:
bashdocker run -ti -v "$PWD":/usr/src/app -p "4000:4000" \ -e "GITHUB_CLIENT_ID=<your_client_id>" \ -e "GITHUB_CLIENT_SECRET=<your_client_secret>" \ docker.xuanyuan.run/starefossen/github-pages
4.3 Docker Compose配置示例
创建docker-compose.yml文件,简化本地开发环境管理:
yamlversion: '3' services: moby-website: image: docker.xuanyuan.run/starefossen/github-pages volumes: - ./docs:/usr/src/app # 挂载本地源码目录 ports: - "4000:4000" environment: - GITHUB_CLIENT_ID=<your_client_id> # 可选,API速率限制时配置 - GITHUB_CLIENT_SECRET=<your_client_secret> # 可选,与CLIENT_ID配合使用 command: jekyll serve -d /_site --watch --force_polling -H 0.0.0.0 -P 4000
启动命令:docker-compose up
5. 环境变量说明
| 环境变量名 | 描述 | 数据类型 | 默认值 | 必要性 |
|---|---|---|---|---|
GITHUB_CLIENT_ID | GitHub OAuth应用的Client ID,用于提升API调用速率限制 | 字符串 | 无 | 可选 |
GITHUB_CLIENT_SECRET | GitHub OAuth应用的Client Secret,与GITHUB_CLIENT_ID配合使用 | 字符串 | 无 | 可选 |
6. 部署流程
6.1 测试环境(Staging)
触发条件:
向项目仓库的theme-start分支推送代码
部署流程:
- 自动构建私有镜像
docker/mobywebsite - 部署至密码保护的测试网站:[***]
- 访问控制:Docker员工通过
docker.com账号登录验证
6.2 生产环境(Production)
触发条件:
向master分支推送代码或合并PR至master分支
构建流程:
- 预构建阶段:执行https://github.com/moby/mobywebsite/blob/master/docs/hooks/pre_build钩子,使用`starefossen/github-pages`生成HTML内容
- 镜像构建:基于项目https://github.com/moby/mobywebsite/blob/master/docs/Dockerfile,将生成的HTML添加到Nginx镜像,并集成自定义https://github.com/moby/mobywebsite/blob/master/docs/nginx/default.conf,生成镜像`docker/mobywebsite:latest`
部署流程:
- Docker Cloud管理的Docker Stack监控镜像变更,自动重新部署至:[***]
- 网络架构:
- DNS由Amazon Route53管理
- 前端通过Amazon CloudFront分发,提供缓存和SSL终止
- 镜像推送后执行https://github.com/moby/mobywebsite/blob/master/docs/hooks/post_push钩子,清除CloudFront缓存确保内容更新
7. 问题反馈渠道
- 网站设计或内容问题:在项目GitHub仓库提交issue
- 生产环境运行问题:联系
website@mobyproject.org
docker 命名空间的其他可用镜像:
docker/compose
Docker Compose,容器编排工具,适合多容器应用管理
docker/dockerfile
Dockerfile 构建工具
docker/ucp-auth
Docker UCP 认证服务,企业级容器平台认证
docker/desktop-stats
Docker Desktop Stats,容器统计服务,适合容器性能监控
docker/desktop-kubernetes
Docker Desktop Kubernetes 环境,适合本地 Kubernetes 开发
docker/welcome-to-docker
Docker 官方入门示例镜像,适合验证 Docker 安装与基础运行
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 mobywebsite 镜像标签
docker pull docker.xuanyuan.run/docker/mobywebsite:<标签>
DockerHub 原生拉取命令
docker pull docker/mobywebsite:<标签>
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务