mobywebsite

docker/mobywebsite Docker Image

用于运行Moby项目官方网站的Docker镜像,提供Moby开源容器化系统相关的信息展示与访问服务。

2 次收藏下载次数: 0状态:社区镜像维护者:Docker 官方工具与组件镜像仓库类型:镜像最近更新:8 年前

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访问,文件修改后自动刷新:

bash
docker run -ti -v "$PWD":/usr/src/app -p "4000:4000" docker.xuanyuan.run/starefossen/github-pages

4.1.2 测试未来日期博客文章

如需测试包含未来发布日期的博客文章,使用以下命令启用未来日期内容预览:

bash
docker 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次/时段:

  1. 在https://github.com/settings/developers创建OAuth应用,获取`Client ID和Client Secret`
  2. 通过环境变量传入凭证启动容器:
bash
docker 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文件,简化本地开发环境管理:

yaml
version: '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_IDGitHub OAuth应用的Client ID,用于提升API调用速率限制字符串无可选
GITHUB_CLIENT_SECRETGitHub OAuth应用的Client Secret,与GITHUB_CLIENT_ID配合使用字符串无可选

6. 部署流程

6.1 测试环境(Staging)

触发条件:

向项目仓库的theme-start分支推送代码

部署流程:

  1. 自动构建私有镜像docker/mobywebsite
  2. 部署至密码保护的测试网站:[***]
  3. 访问控制:Docker员工通过docker.com账号登录验证

6.2 生产环境(Production)

触发条件:

向master分支推送代码或合并PR至master分支

构建流程:

  1. 预构建阶段:执行https://github.com/moby/mobywebsite/blob/master/docs/hooks/pre_build钩子,使用`starefossen/github-pages`生成HTML内容
  2. 镜像构建:基于项目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`

部署流程:

  1. Docker Cloud管理的Docker Stack监控镜像变更,自动重新部署至:[***]
  2. 网络架构:
    • DNS由Amazon Route53管理
    • 前端通过Amazon CloudFront分发,提供缓存和SSL终止
    • 镜像推送后执行https://github.com/moby/mobywebsite/blob/master/docs/hooks/post_push钩子,清除CloudFront缓存确保内容更新

7. 问题反馈渠道

  • 网站设计或内容问题:在项目GitHub仓库提交issue
  • 生产环境运行问题:联系website@mobyproject.org

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 mobywebsite 镜像标签

docker pull docker.xuanyuan.run/docker/mobywebsite:<标签>

DockerHub 原生拉取命令

docker pull docker/mobywebsite:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告