
[NDD Docker Sphinx]是一个基于Sphinx的文档构建工具镜像,支持HTML、实时HTML和PDF等多种格式生成,并集成了大量实用扩展和辅助脚本。镜像版本格式为<SPHINX_VERSION>-<DOCKER_IMAGE_VERSION>,例如3.5.4-9表示使用Sphinx 3.5.4的第9版Docker镜像。
该镜像基于官方https://hub.docker.com/_/python/%E6%9E%84%E5%BB%BA%EF%BC%8C%E9%99%A4Sphinx%E6%A0%B8%E5%BF%83%E5%8A%9F%E8%83%BD%E5%A4%96%EF%BC%8C%E8%BF%98%E9%A2%84%E5%AE%89%E8%A3%85%E5%B9%B6%E9%85%8D%E7%BD%AE%E4%BA%86%E5%A4%9A%E7%A7%8D%E6%89%A9%E5%B1%95%EF%BC%8C%E5%8C%85%E6%8B%AC%E4%B8%BB%E9%A2%98%EF%BC%88%E5%A6%82alabaster%E3%80%81sphinx-rtd-theme%EF%BC%89%E3%80%81%E5%9B%BE%E8%A1%A8%E5%B7%A5%E5%85%B7%EF%BC%88%E5%A6%82sphinxcontrib-mermaid%E3%80%81sphinxcontrib-plantuml%EF%BC%89%E3%80%81%E5%AE%9E%E7%94%A8%E5%B7%A5%E5%85%B7%EF%BC%88%E5%A6%82sphinx-autobuild%E3%80%81sphinx-copybutton%EF%BC%89%E7%AD%89%EF%BC%8C%E5%B9%B6%E6%8F%90%E4%BE%9B%E8%BE%85%E5%8A%A9%E8%84%9A%E6%9C%AC%E7%AE%80%E5%8C%96%E6%97%A5%E5%B8%B8%E6%93%8D%E4%BD%9C%E3%80%82
参考链接:
源码托管于GitLab,可通过以下命令构建:
shellgit clone git@gitlab.com:ddidier/docker-sphinx-doc.git cd docker-sphinx-doc make
Docker镜像可直接从Docker Hub拉取:
shellexport SPHINX_DOC_VERSION="4.1.2-2" docker pull ddidier/sphinx-doc:"${SPHINX_DOC_VERSION}"
${HOST_DATA_DIR})需挂载到容器内/data目录,使用-v "${HOST_DATA_DIR}":/data参数USER_ID指定文件所属用户的UID,格式为-e USER_ID="${UID}"使用sphinx-quickstart-custom命令创建项目骨架,该命令在官方sphinx-quickstart基础上优化了配置文件并添加辅助脚本。注意:${HOST_DATA_DIR}必须已存在,否则会失败。
shelldocker run -it -v "${HOST_DATA_DIR}":/data -e USER_ID="${UID}" ddidier/sphinx-doc:"${SPHINX_DOC_VERSION}" sphinx-quickstart-custom
可传递sphinx-quickstart支持的所有参数,例如指定项目名称:
shelldocker run -it -v "${HOST_DATA_DIR}":/data -e USER_ID="${UID}" ddidier/sphinx-doc:"${SPHINX_DOC_VERSION}" sphinx-quickstart-custom --project my-documentation
初始化后,建议修改bin/variables.sh配置项目名称和端口等参数。
辅助脚本(推荐)
生成的项目在bin目录下提供辅助脚本,可通过--help查看选项,配置文件为bin/variables.sh。
生成HTML文档:
shell./bin/build-html.sh
生成HTML并实时预览(支持热重载):
shell# 默认端口(8000) ./bin/serve.sh # 自定义端口(如12345) ./bin/serve.sh --port 12345
生成PDF文档:
shell./bin/build-pdf.sh
项目根目录还提供Makefile简化操作:
make html:生成HTML文档make pdf:生成HTML和PDF文档make serve:生成并预览HTML文档make package:打包文档Docker命令
可直接使用Sphinx命令:
查看所有支持的目标:
shelldocker run -it --rm -v "${HOST_DATA_DIR}":/data -e USER_ID="${UID}" ddidier/sphinx-doc:"${SPHINX_DOC_VERSION}" make help
生成HTML文档:
shelldocker run -it --rm -v "${HOST_DATA_DIR}":/data -e USER_ID="${UID}" ddidier/sphinx-doc:"${SPHINX_DOC_VERSION}" make html
生成HTML并实时预览:
shell# 默认端口(8000) docker run -it --rm -v "${HOST_DATA_DIR}":/data -p 8000:8000 -e USER_ID="${UID}" ddidier/sphinx-doc:"${SPHINX_DOC_VERSION}" make livehtml # 自定义端口(如12345) docker run -it --rm -v "${HOST_DATA_DIR}":/data -p 12345:12345 -e USER_ID="${UID}" ddidier/sphinx-doc:"${SPHINX_DOC_VERSION}" SPHINXPORT=12345 make livehtml
生成PDF文档:
shelldocker run -it --rm -v "${HOST_DATA_DIR}":/data -e USER_ID="${UID}" ddidier/sphinx-doc:"${SPHINX_DOC_VERSION}" make latexpdf
通过以下命令进入容器内部操作:
shelldocker run -it --rm -v "${HOST_DATA_DIR}":/data -e USER_ID="${UID}" ddidier/sphinx-doc:"${SPHINX_DOC_VERSION}"
进入容器后,默认位于/data目录(若未在该目录,执行cd /data),可直接使用Sphinx命令:
make help:查看目标列表make html:生成HTML文档make latexpdf:生成PDF文档make livehtml:生成并预览HTML文档若${HOST_DATA_DIR}非文档根目录,可使用-C参数指定目录,例如:
shelldocker run -it --rm -v "${HOST_DATA_DIR}":/data -e USER_ID="${UID}" ddidier/sphinx-doc:"${SPHINX_DOC_VERSION}" make -C /some/directory/ html
镜像预安装以下扩展,可通过修改conf.py启用/禁用:
如需使用未内置的扩展,需:
dockerFROM ddidier/sphinx-doc:latest RUN pip install '扩展包名 == 版本号'
source/conf.py中添加扩展:pythonextensions = [ ... '扩展模块名', ]
Makefile提供开发相关目标:
make setup:安装开发工具make build:构建Docker镜像make quality:运行质量检查(ShellCheck)make test:运行测试make:默认目标,等价于make build quality testshellexport GITLAB_RUNNER_VERSION=v12.9.0 docker run -d \ --name gitlab-runner \ --privileged \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:"${GITLAB_RUNNER_VERSION}"
修改.gitlab-ci.yml,注释镜像拉取步骤
提交修改并构建镜像:
shellgit add --all git commit -m "测试修改" make build
shelldocker run --rm -t -i \ -v /opt/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "${PWD}":"${PWD}" \ --workdir "${PWD}" \ gitlab/gitlab-runner:"alpine-${GITLAB_RUNNER_VERSION}" \ exec docker \ --docker-privileged \ --docker-pull-policy="if-not-present" \ --docker-volumes /var/run/docker.sock:/var/run/docker.sock \ --docker-volumes /builds:/builds \ Test
Docker Hub不再提供API更新README,发布新版本后需手动更新Docker Hub上的文档。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务