
Gollum Docker部署完整指南从一行命令到生产级Wiki【免费下载链接】gollumA simple, Git-powered wiki with a local frontend and support for many kinds of markup and content.项目地址: https://gitcode.com/gh_mirrors/go/gollumGollum 是一款基于 Git 的轻量级 Wiki 系统而 Docker 是部署 Gollum 的最简单方式——无需安装 Ruby 环境一条 Docker 命令即可让 Gollum Docker 镜像在你的服务器上跑起一个功能完整的 Git Wiki支持 Markdown、AsciiDoc、Org 等多种标记语言。本指南将从一行命令快速启动讲起逐步带你配置到生产级 Wiki 服务。 为什么用 Docker 部署 Gollum直接安装 Gollum 需要 Ruby 2.6 环境、编译 Git 相关依赖rugged/libgit2步骤繁琐且易出错。而 Docker 部署 Gollum 的优势非常明显对比项源码安装Docker 部署环境依赖Ruby 编译工具链仅需 Docker部署耗时10~30 分钟30 秒隔离性与宿主机混用容器级隔离升级回滚手动重装换镜像即可Gollum 官方在仓库中提供了完整的 Dockerfile基于ruby:3.3-alpine多阶段构建并内置了 AsciiDoc、Creole、MediaWiki、Org、ReStructuredText 等标记语言渲染器见 Dockerfile开箱即用。 快速启动一行 Docker 命令只需一条命令Gollum Docker 服务即可启动docker run -d -p 4567:4567 -v $(pwd)/wiki:/wiki gollumwiki/gollum然后打开浏览器访问http://localhost:4567你的 Gollum Wiki 就跑起来了。这条命令做了三件事-v $(pwd)/wiki:/wiki把宿主机目录挂载到容器的/wiki卷数据目录-p 4567:4567映射 Gollum 默认端口 4567容器内自动初始化启动脚本会自动检查/wiki目录若其中还不是 Git 仓库会自动执行git init见 docker-run.sh你无需手动准备仓库。 深入理解镜像是怎么工作的了解镜像内部机制是排错和生产调优的基础。双阶段构建Dockerfile 先用构建阶段安装 Ruby 依赖与各类标记语言渲染器最终运行镜像只保留运行所需内容体积小、启动快。启动脚本逻辑容器入口为 docker-run.sh其执行流程为校验/wiki目录是否存在且可写见 docker-run.sh不可写时会打印警告——这是最常见的权限问题来源若/wiki不是 Git 仓库自动git init根据环境变量配置 Git 提交者身份以exec gollum $启动服务所有附加参数都会透传给 gollum 命令见 docker-run.sh。 这个参数透传特性是 Gollum Docker 部署的关键所有命令行选项--port、--bare、--allow-uploads等都可直接写在docker run末尾。⚙️ 生产级配置常用启动参数结合 README.md 中的命令行选项生产环境推荐的完整启动命令如下docker run -d \ --name gollum \ -p 4567:4567 \ -v /opt/wiki:/wiki \ -e GOLLUM_AUTHOR_USERNAMEMyWiki \ -e GOLLUM_AUTHOR_EMAILwikiexample.com \ -e APP_ENVproduction \ gollumwiki/gollum \ --host 0.0.0.0 \ --page-file-dir docs \ --allow-uploads dir \ --math katex几个生产要点说明--page-file-dir docs只发布仓库中docs目录下的页面页面与其他内容脚本、构建产物天然分离--allow-uploads dir开启拖拽上传文件统一存到仓库/uploads/目录方便备份与迁移--math katex启用数学公式渲染KTeX 资源已内置于镜像--no-edit对只读展示型 Wiki加上该参数可关闭网页端编辑只保留查阅能力APP_ENVproduction让底层 Sinatra 应用只加载一次避免开发模式的每次请求重载见 README.md。✍️ 环境变量设置 Git 提交者身份通过 Web 界面编辑页面时Gollum 会以某个身份提交 Git 变更。启动脚本会读取以下环境变量并写入 Git 配置见 docker-run.shGOLLUM_AUTHOR_USERNAME提交者名称如团队名或个人名GOLLUM_AUTHOR_EMAIL提交者邮箱。⚠️ 如果不设置这两个变量页面编辑后的 commit 将缺少作者信息历史记录会显得杂乱。生产部署建议必配。 数据持久化与备份Gollum 的一切数据——所有页面、图片、历史版本——都只是/wiki卷里的一个 Git 仓库这是它最大的优势备份直接对宿主机映射目录执行git bundle create wiki.bundle --all一个文件即完整备份迁移把备份目录挂到新容器的/wiki数据即刻可用零迁移成本与 GitHub/GitLab 互操作Gollum 仓库兼容主流平台的 wiki 仓库格式直接 clone 过来即可继续浏览编辑。若需修改启动行为如自定义 Rack 配置可参考 config.ru 与 config.rb 的占位模板将其放入挂载卷后通过--config传入。 构建自定义镜像修改 UID/GID默认镜像以非 root 用户www-dataUID/GID 1000运行容器。若宿主机挂载目录的属主 ID 不同可能出现目录不可写警告。解决方法是构建时指定 UID/GIDgit clone https://gitcode.com/gh_mirrors/go/gollum cd gollum docker build --build-arg UID$(id -u) --build-arg GID$(id -g) -t gollum:custom .相关逻辑见 Dockerfile镜像会用--build-arg传入的 UID/GID 调整内部用户并预配置git safe.directory从根源上避免权限报错。❓ 常见问题速查现象原因解决提示/wiki不可写宿主机目录属主 UID 与容器用户不匹配构建自定义镜像传入UID/GID或chown宿主机目录页面无法保存未设置提交者身份配置GOLLUM_AUTHOR_USERNAME/GOLLUM_AUTHOR_EMAIL端口被占用4567 已占用-p 8080:4567映射到别的端口容器内端口不变中文乱码Git 编码配置挂载卷中执行git config core.precomposeunicode相关设置 总结Gollum Docker 部署的核心路径只有三步一行命令启动 → 挂载/wiki卷持久化 → 用透传参数与环境变量完成生产配置。由于数据本身就是 Git 仓库备份、迁移、多副本部署都极其轻量。配合本指南中的自定义镜像构建技巧你可以把 Gollum 打造成稳定、安全、易维护的团队级 Wiki 服务。想了解更多标记语言Mermaid 图表、CriticMarkup 批注、BibTeX 引用等高级特性可继续阅读 README.md 与 gollum.gemspec 了解版本与依赖细节。【免费下载链接】gollumA simple, Git-powered wiki with a local frontend and support for many kinds of markup and content.项目地址: https://gitcode.com/gh_mirrors/go/gollum创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考