「社内で技術情報などのナレッジベースを共有したい!」という要望はどの会社でも多くあるかと思います。
私が以前にいた会社では、ナレッジベース蓄積ツールとして、Lotus Notesの利用から始まり、Sharepointに移行したり、共有フォルダ上のファイル(Wordやテキスト)や、GitlabやRedmine上のwiki、Microsoft Onenoteなどなど・・・様々な方法でいろいろな場所に保管されていて会社全体として情報を蓄積できている体制ではありませんでした。
開発者が慣れているツールを選択しがちで強制するのが難しいということもあります。結局のところ、全員が納得できるようなナレッジツールはないというのが個人的な意見です。
そんな中で、今回はOSSでナレッジベースQiitaライクに構成することができる「Knowledge(ナレッジ) 」という自社サーバーにインストールできるオープンソースの情報共有サービスをDockerコンテナで簡単に構築してみました。
Knowledgeではブラウザだけで記事を見ることはもちろん、Markdownを使って記事をかくことができます。
また、コピペで直接画像貼り付けなどもできるため、他のツールのように画像を1回サーバへアップしてから挿入して・・・という煩わしさもなく、かなり使い勝手のいいツールだと思います。
試した環境
以下の環境でためしました。とりあえずの動作確認のためにWindows 10 Pro上のDocker環境で試してます。
OS:Windows 10 Pro
Dockerをインストールする
Dockerを稼働させるためにDocker for Windowsをインストールします。
Docker for Windowsをインストールすると合わせてdocker-composeもインストールされます。
knowledgeコンテナの構築
私の環境では「C:\Docker」というフォルダを作成して、その下にknowledgeコンテナ構築に必要なファイルを配置しています。
docker-composeファイルの準備
以下のdocker-composeファイルを利用させていただきました。
git cloneで必要ファイルを取得します。
PS C:\Docker> git clone https://github.com/support-project/docker-knowledge.git
Cloning into 'docker-knowledge'...
remote: Enumerating objects: 325, done.
Receiving objects: 81% (264/325)ed 0 (delta 0), pack-reused 325 eceiving objects: 78% (254/325)
Receiving objects: 100% (325/325), 38.70 KiB | 250.00 KiB/s, done.
Resolving deltas: 100% (108/108), done.
knowledgeコンテナの構築
私のPC環境だとすでに8080ポートを別コンテナで割り当ててしまっているのでポートだけ8081に変更します。
version: '2'
services:
app:
image: koda/docker-knowledge
#build: .
volumes:
- ./volumes/knowledge:/root/.knowledge
ports:
- "8081:8080"
restart: always
depends_on:
- "db"
db:
image: postgres:9
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=admin123
- POSTGRES_DB=knowledge_production
volumes:
#- ./volumes/initdb:/docker-entrypoint-initdb.d
- ./volumes/postgres/data:/var/lib/postgresql/data
restart: always
修正したらそのままdocker-composeコマンドから構築します。イメージのダウンロードが始まってknowledgeのコンテナが構築されます。めちゃ簡単です。
PS C:\Docker> cd .\docker-knowledge\
PS C:\Docker\docker-knowledge> docker-compose up -d
コンテナが正常に起動していることを確認します。
PS C:\Docker\docker-knowledge> docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------
docker-knowledge_app_1 dumb-init /usr/local/tomca ... Up 0.0.0.0:8081->8080/tcp
docker-knowledge_db_1 docker-entrypoint.sh postgres Up 5432/tcp
もし以下のような感じでpostgressのコンテナが再起動を繰り返している場合にはdocker-compose.ymlに記載されているvolumeの以下の部分を修正して下さい。
PS C:\Docker\docker-knowledge> docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------
docker-knowledge_app_1 dumb-init /usr/local/tomca ... Up 0.0.0.0:8081->8080/tcp
docker-knowledge_db_1 docker-entrypoint.sh postgres Restarting
修正箇所
「./volumes/postgres/data:/var/lib/postgresql/data」
↓
「./volumes/postgres:/var/lib/postgresql」
これでKnowledgeは構築完了です。
Knowledgeへのログオン
さっそくknowledgeにアクセスしてみます。私の環境ではlocalhostの8081へアクセスしています。
ログオンしてみます。
ユーザ:admin、パスワード:admin123でログオンできます。
記事を作成する
ログオンできたら試しに記事を書いてみます。
Markdownが使えますので慣れれば記事を書くのも簡単ですね。
こんか感じで簡単に記事を書くことができました。
まとめ
今回はOSSでナレッジベースQiitaライクに構成することができる「Knowledge(ナレッジ) 」についてDockerコンテナで構築してみました。
通常のインストールだと結構手順が多くて大変みたいですが、コンテナであればサクッと簡単に構築できるので便利ですね。
この「Knowledge(ナレッジ) 」にはこの他にも、アクセス権の設定やアンケート機能やAD連携などの機能がありますので、別途紹介できればと思っています。
Dockerのオススメ勉強方法
私がオススメするDocker初心者向けの最初に購入すべき書籍は「さわって学ぶクラウドインフラ docker基礎からのコンテナ構築」です。
さわって学ぶクラウドインフラ docker基礎からのコンテナ構築
本書ではDockerの基本的な概念などの座学ももちろんありますが、実際に、Dockerのインストール方法やWebサーバーをコンテナで構築するハンズオンを通じて学習することができるため、特に初心者の方はは分かりやすい内容となっています。
今回は以上となります。
コメント