使用 Docker 搭建你的Wiki

  使用 Docker 搭建你的Wiki(DokuWiki)

  前面介紹了三款不同的 RSS 系統的快速搭建使用,接下來我將演示幾種不同的 Wiki 系統,同樣是藉助 Docker 和 Traefik 進行快速搭建,本篇是第四篇,DokuWiki。

  如果你有閱讀過我之前寫的文章,那麼參考本篇文章將文章搭建起來,應該只需要3分鐘或者更少,如果你沒有看過,那麼可以點擊本文相關的文章標籤,閱讀過往的文章。

  關於 DokuWiki

  DokuWiki 同樣是一款開源並且支持免費使用的軟件,由 PHP 編寫,第一個提交版本在2004年,作爲開源產品已經被穩定迭代了15個年頭 1,同樣天生跨平臺,並被廣泛使用在各種知識社區內,尤其適合中小團隊和個人作爲知識整理軟件使用。

  記得第一份工作,在新浪雲團隊的時候,內部的 Wiki 便是基於 Doku 搭建的。

  DokuWiki 和前面介紹的 MoinMoin 很類似,默認使用純文本作爲數據記錄的方式,所以佔用服務器資源很低。

  官方目前還在迭代,不過因爲維護時間很長,迭代頻率相對比較慢,距離當下最新的版本是 2018年4月22日 ,本文基於此版本進行撰寫,感興趣的同學可以圍觀:官方項目倉庫。

  話不多說,開始實戰。

  使用 Compose 運行 DokuWiki

  DokuWiki 同樣沒有提供官方容器鏡像,但是在 DockerHub 搜索的時候發現,Bitnami 有封裝好的鏡像 bitnami/dokuwiki ,我個人比較信任這個團隊,從2013年開始使用他們的服務到現在,一直沒有什麼大問題。

  這裏圖個省事,就不進行鏡像封裝了,想學習封裝的同學可以翻閱之前的文章內容,不放心鏡像的同學,可以圍觀鏡像源代碼地址,進行安全審查:https://github.com/bitnami/bitnami-docker-dokuwiki

  配合下面的配置文件,使用 Compose 可以一鍵啓動一個使用 文本文件 作爲數據儲存的 DokuWiki ,配置很簡單,30 行代碼左右。

  version: '3'

  services:

  dokuwiki:

  container_name: doku.lab.io

  restart: always

  image: 'bitnami/dokuwiki:0.20180422.201901061035-r12'

  labels:

  - "traefik.enable=true"

  - "traefik.frontend.rule=Host:doku.lab.io"

  - "traefik.frontend.passHostHeader=true"

  - "traefik.frontend.entryPoints=https,http"

  - "traefik.frontend.headers.SSLRedirect=true"

  - "traefik.frontend.headers.STSSeconds=315360000"

  - "traefik.frontend.headers.frameDeny=true"

  - "traefik.frontend.headers.SSLProxyHeaders=X-Forwarded-Proto:https"

  - "traefik.frontend.redirect.regex=^https?://doku.lab.io/(.*)"

  - "traefik.frontend.redirect.replacement=https://doku.lab.io/$${1}"

  - "traefik.frontend.headers.customResponseHeaders=Access-Control-Allow-Origin:*"

  environment:

  - DOKUWIKI_FULL_NAME=soulteary

  - [email protected]

  - DOKUWIKI_WIKI_NAME=Wiki

  - DOKUWIKI_USERNAME=soulteary

  - DOKUWIKI_PASSWORD=soulteary

  networks:

  - traefik

  expose:

  - 80

  volumes:

  - ./data:/bitnami

  networks:

  traefik:

  external: true

  和之前不同的是,這裏演示瞭如何使用 Docker Label 定義 Traefik 的一些額外能力,比如自動掛載 ssl/tls 證書,域名重定向。

  當使用 docker-compose up 將應用啓動之後,你會看到下面的日誌,耐心等待 dokuwiki successfully initialized 出現在日誌中,之後便可以通過我們配置的域名進行訪問了,本例中地址爲 doku.lab.io 。(我使用 Traefik 提供服務發現,如果你不會操作,請訪問我的歷史文章,瞭解 Traefik 如何使用。)

  Creating doku.lab.io ... done

  Attaching to doku.lab.io

  doku.lab.io |

  doku.lab.io | Welcome to the Bitnami dokuwiki container

  doku.lab.io | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-dokuwiki

  doku.lab.io | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-dokuwiki/issues

  doku.lab.io |

  doku.lab.io | nami INFO Initializing apache

  doku.lab.io | apache INFO ==> Patching httpoxy...

  doku.lab.io | apache INFO ==> Configuring dummy certificates...

  doku.lab.io | nami INFO apache successfully initialized

  doku.lab.io | nami INFO Initializing php

  doku.lab.io | nami INFO php successfully initialized

  doku.lab.io | nami INFO Initializing libphp

  doku.lab.io | nami INFO libphp successfully initialized

  doku.lab.io | nami INFO Initializing dokuwiki

  doku.lab.io | dokuwik INFO Passing wizard, please be patient

  doku.lab.io | dokuwik INFO

  doku.lab.io | dokuwik INFO ########################################################################

  doku.lab.io | dokuwik INFO Installation parameters for dokuwiki:

  doku.lab.io | dokuwik INFO username: soulteary

  doku.lab.io | dokuwik INFO user fullname: soulteary

  doku.lab.io | dokuwik INFO Password: **********

  doku.lab.io | dokuwik INFO Email: [email protected]

  doku.lab.io | dokuwik INFO Wiki Name: Wiki

  doku.lab.io | dokuwik INFO (Passwords are not shown for security reasons)

  doku.lab.io | dokuwik INFO ########################################################################

  doku.lab.io | dokuwik INFO

  doku.lab.io | nami INFO dokuwiki successfully initialized

  doku.lab.io | INFO ==> Starting dokuwiki...

  doku.lab.io | [Mon Feb 11 09:11:14.374658 2019] [ssl:warn] [pid 101] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name

  doku.lab.io | [Mon Feb 11 09:11:14.381884 2019] [ssl:warn] [pid 101] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name

  doku.lab.io | [Mon Feb 11 09:11:14.447186 2019] [ssl:warn] [pid 101] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name

  doku.lab.io | [Mon Feb 11 09:11:14.455003 2019] [ssl:warn] [pid 101] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name

  doku.lab.io | [Mon Feb 11 09:11:14.494463 2019] [mpm_prefork:notice] [pid 101] AH00163: Apache/2.4.37 (Unix) OpenSSL/1.1.0j PHP/7.1.26 configured -- resuming normal operations

  doku.lab.io | [Mon Feb 11 09:11:14.494539 2019] [core:notice] [pid 101] AH00094: Command line: 'httpd -f /bitnami/apache/conf/httpd.conf -D FOREGROUND'

  在展示程序界面和常規操作之前,我們還是先說一下數據存放地址,以及未來插件要在哪裏進行存放和應用。

  在上面的配置文件 docker-compose.yml 的同級目錄會自動生成 data 目錄,在目錄內會包含用戶數據、環境配置相關的內容,如下所示:

  data

  ├── apache

  │ └── conf

  ├── dokuwiki

  │ ├── conf

  │ ├── data

  │ └── lib

  │ ├── images

  │ ├── plugins

  │ └── tpl

  └── php

  └── conf

  如果你需要應用官方市場的插件或者主題,請放置於 data/dokuwiki/lib/plugin/ 目錄內的指定文件夾中,和 MoinMoin 不同的是,不需要重啓容器進行,直接刷新瀏覽器頁面,插件就能夠自動加載了。jbk.39.net/yiyuanzaixian/ezamyy/

  我們的 Wiki 條目數據會被存放在 data/dokuwiki/data 中,所以請定期對該位置數據進行備份保存。

  DokuWiki 的常規操作

  打開瀏覽器,可以看到 DokuWiki 已經運行起來了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章