Gollum Docker部署完整指南:从一行命令到生产级Wiki
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),仅供参考

相关新闻

如何从零手写一个DI容器:基于gh_mirrors/co/container实现PSR-11合规容器的完整教程

如何从零手写一个DI容器:基于gh_mirrors/co/container实现PSR-11合规容器的完整教程

如何从零手写一个DI容器:基于gh_mirrors/co/container实现PSR-11合规容器的完整教程 【免费下载链接】container 项目地址: https://gitcode.com/gh_mirrors/co/container 本教程基于 gh_mirrors/co/container(PSR-11 标准接口仓库)&…

2026/9/19 2:35:59 阅读更多 →
Android蓝牙Mesh灯光控制实战:从配网到组控的完整实现

Android蓝牙Mesh灯光控制实战:从配网到组控的完整实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 2:34:59 阅读更多 →
CMU自主探索环境AEDE:搭建、测试与调优全攻略

CMU自主探索环境AEDE:搭建、测试与调优全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 2:34:59 阅读更多 →

最新新闻

YOLO桌面版工具:开箱即用的目标检测应用

YOLO桌面版工具:开箱即用的目标检测应用

1. 这不是又一个“跑通YOLO”的Demo,而是一个真正能塞进设计师、质检员、巡检员电脑里的工具你有没有遇到过这样的场景:工厂产线主管想用AI查漏补缺,但让他装Python环境、配CUDA、改config文件?他第一反应是关掉网页。学校老师想带…

2026/9/19 3:16:25 阅读更多 →
四台Ryzen AI Max+ 395搭建本地大模型推理集群实战

四台Ryzen AI Max+ 395搭建本地大模型推理集群实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 3:16:25 阅读更多 →
7-11便利店自建配送中心:高频小批量补货的供应链闭环

7-11便利店自建配送中心:高频小批量补货的供应链闭环

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 3:16:25 阅读更多 →
Claude 进阶实践指南:从编码代理到工作流自动化的完整路径

Claude 进阶实践指南:从编码代理到工作流自动化的完整路径

很多人把 Claude 当成一个“更聪明的聊天机器人”来用,问几个问题、让它写段文案、翻译几句话,然后就觉得“也就那样”。但如果你把它放进真实的编程任务和工作流自动化场景里,会发现完全不是一回事。我过去半年一直在把 Claude 用到编码代理…

2026/9/19 3:16:25 阅读更多 →
Julia 文档编写指南:如何编写与维护 `jldoctest` 代码块

Julia 文档编写指南:如何编写与维护 `jldoctest` 代码块

Julia 文档编写指南:如何编写与维护 jldoctest 代码块 【免费下载链接】julia The Julia Programming Language 项目地址: https://gitcode.com/gh_mirrors/ju/julia jldoctest 是 Julia 文档体系中"文档即测试"机制的核心载体:文档中写…

2026/9/19 3:16:25 阅读更多 →
CSS圆锥渐变实现流光边框动画:conic-gradient与@property实战指南

CSS圆锥渐变实现流光边框动画:conic-gradient与@property实战指南

前几天接了一个视觉稿,卡片四周要带一圈会流动的彩色渐变边框,设计师原话是“就一个流光描边,一下午能上吧”。我盯着那个匀速转圈的亮斑看了几秒,第一反应是交给 Canvas 或者 Lottie,但冷静下来之后意识到&#xff0c…

2026/9/19 3:15:24 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/16 19:03:19 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/17 7:57:36 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/17 10:19:14 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →