DokuWiki容器化实践

DokuWiki 使用 Docker 做容器化,主要解决以下问题。

  • 插件和模板的安装
  • 插件和模板的默认配置和配置文件的传递
  • 持久化存储

插件模板安装

使用容器之后就不能在使用插件管理器来安装插件了,否则容器重启后插件将丢失。需要将插件代码打包到镜像里。基本思路是使用多段构建,在 builder 过程中下载并解压插件和模板代码,然后复制到运行镜像中。以下是示例 Dockerfile,完整 Dockerfile 请看参考资料。

Dockerfile 中使用的 PHP 镜像参考 制作PHP7基础镜像

插件模板配置

基础镜像支持在 app.sh 中自定义启动脚本。可以在启动脚本中定义如何将插件及模板的配置应用到容器中的 DokuWiki 实例。基本思路是以 ConfigMap 名称为配置文件名称(不带 php 后缀),举例来说,设置 ConfigMap local, 则 cp $APP_CONFIG_PATH/local /home/wwwroot/default/conf/local.php,这样就可以在运行时修改 Dokuwiki 的配置。实现代码如下。

有一些必要的配置,通过 app.sh 来设置默认值,比如,为 Bootstrap3 模板设置默认值。

持久化存储

推荐使用 git 仓库来存储,需要插件 gitbacked。在 app.sh 中设置 gitbackend 插件。

管理员密码

请看参考资料,通过tools/smd5.php设置。

推荐插件

参考资料

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注