中小企業で生きていくシステムエンジニアが考えるライフハック・ITツール・投資、人生100年を生き抜く人生戦略、生産性向上をノリックが考える

中小企業で働くシステムエンジニアがライフハック、ツール、投資、人生100年を生き抜く人生戦略、生産性向上を語ります

HackMD/ CodiMDをWindows10 のDocker に構築して画像ファイルはImgurからローカルに保存するようにする手順

Docker HackMD

DockerでHackMD

 

 

2019/2/15(金)追記

本日Docker Desktopのバージョンアップがあった。さっそくバージョンアップしたのだが、会社のパソコンはメモリが8GBしか無いためメモリ不足となって立ち上がらなくなった。

Docker desctop

ええパソコンほしい;;

実行あるのみ

チーム内で情報共有できるお手軽なツールはないか探していたのですが、結局HackMDで進めようと決めました。決め手になったのは軽快なMarkdownエディタと色々と図形が使えることですね。画像をクリップボードから貼り付けられるのは良いと思ったのですが、画像が自動的にimgurに登録されてしまうので仕事で使うには差し障りがあります。ただ、それも解消できました。(ちょっと課題があるのですが)

動作環境  

Windows10 Pro 1809 

Docker Windows版 Version 2.0.0.2 (30215)

Docker Desktop | Docker

HackMD Docker Image

GitHub - hackmdio/codimd: CodiMD - Realtime collaborative markdown notes on all platforms.

インストール  

DockerとGitが必要ですが、これはググればいろいろでてくると思うので割愛します。

HackMD Dockerファイル取得 

git clone --depth 1 https://github.com/hackmdio/codimd-container.git

docker-composeファイルの編集

取得したファイルの中に .\codimd-container\docker-compose.yml というファイルがあるのでテキストエディタで開きます。その中に「environment:」という項目があるので「- CMD_IMAGE_UPLOAD_TYPE=filesystem」と入力します。

2019/3/11 追記

会社のPCでいつものようにdocker-compose up で起動したらアップデートが動いたのか1.3.0にバージョンアップしてしまった。そうすると今まで登録していたアカウントや文書が全部消えてしまったw。バックアップはとっていたので復旧は直ぐにできたが。

さらに画像を貼り付けようとするとエラーで落ちる。いろいろ調べてみるとパラメータに以下を追加して成功した。

「- CMD_IMAGE_UPLOAD_TYPE=filesystem」のすぐ下に

「- CMD_DOMAIN=コンピュータ名」 コンピュータ名はコマンドプロンプトで「hostname」と打ったら出てくるやつ。

設定するところが足りなかったのかもうちょっと研究する必要がありそうだ。

コンテナの再作成

コマンドプロンプトで以下のコマンドを実行

docker-compose create --force-recreate

サクッと終わると思います。

2019/02/12 追記

会社のPCでもやってみたところ、失敗。一回docker-compose upをやっていないといけないかもです。

いざ起動

コマンドプロンプトに「docker-compose up」と打ち込みやす。なんか変なメッセージが出ました。

HackMD

警告のお知らせ

 ローカルに保存するときにはDockerVlumesをちゃんと勉強しとけよということかと思います。後で読むことにします。  ブラウザでhttp://localhost:3000にアクセスし表示されるはず。

f:id:norihiko_matsumoto:20190211222121p:plain

 

画像アップのテスト

恥ずかしくない画像をクリップボードから貼り付けてみます。

HackMD

imgurになっていない。

エクスポート機能を試してみる

 バックアップする機能が無いので定期的にDropboxにでも落としてバックアップしようかと思います。右上のメニューからエクスポート関連の機能を試してみます。  

f:id:norihiko_matsumoto:20190211222754p:plain

エクスポート
  • Markdown →画像ファイルは落ちてこず

  • HTML →さすがにHTMLは画像も一緒に落ちてくるでしょう。と思ったら落ちてこず
  • PDF →これには画像が含まれていました。

 

画像の保存先をLocal Driveと共有する

今のままではDockerのどこに画像が保尊されているのかわからないのでローカルのCドライブと共有することにします。Dockerの設定画面をタスクバーから開いて共有したいドライブにチェックする。今回はCドライブとした。Dockerを再起動。

f:id:norihiko_matsumoto:20190216083454p:plain

cドライブを共有する

docker-compose.ymlを編集してapp: 配下に以下の記載を追加。パスはどこでもいいと思うけど、私はDropboxに作っているbitbucketのフォルダ配下にしました。たまにgitにpushしてバックアップしようかなという目論見です。

volumes:
- 'c:\users\{ユーザー名}\Dropbox\bitbucket\codimd\uploads:/codimd/public/uploads'

f:id:norihiko_matsumoto:20190216083934p:plain

docker-compose.yml の編集

コマンドプロンプトで以下のコマンドを実行

docker-compose create --force-recreate

 

終わったら

docker-compose up

試してみる。

f:id:norihiko_matsumoto:20190216084659p:plain

この画像がローカルのPC側で見えれば成功

f:id:norihiko_matsumoto:20190216084939p:plain

ローカル側で画像が見られる様になった。

別のPCからも参照できるようにする

せっかく複数メンバーで編集できるツールだし、蓄積した文書はナレッジとして共有したいからアクセスしたい。ネットで検索するとDockerの設定で共有する方法を記載しているサイトが多いのだが自分には難しすぎたためHyper-Vの設定で共有することにした。

f:id:norihiko_matsumoto:20190216214240p:plain

Hyper-Vマネージャを起動

f:id:norihiko_matsumoto:20190216214609p:plain

新しい仮想ネットワークスイッチを作成

 

 意外にもこれですんなりと別のPCからIPアドレス指定:3000でアクセスすることが出来た。

 

課題

会社のPCだが、IP固定ではないのでどうするか?そう言えば担当しているパッケージの最新バージョンがWindows10だから開発環境をかVM-Wareで作る話があった。そこに乗っけるか。。

 

2019/4/15追記 VM-Wareの仮想マシンにDockerを更に乗せるのは無理

いろいろ試行錯誤したのだが、VM-Wareで構築したWindows10 ProにDockerをいれてもエラーになり動作しなかった。VM-WareのWindows10 でHyper-Vがどうなっているか確認するとローカルのWindows10にはあるMobyLinuxVMが無い。。

ネットを色々検索するとVM-Wareを載せているWindows Server側の設定をいじれば騙せるそうだが、そこまでする権限が私には無いので諦めた。

 

AWS上に置こうかとも思うが、セキュリティの問題があるしオンプレのサーバーを買ってもらうしか無いが、そうまでして成果を出せるかコミットできない。なぜなら

「なんでうちにはグループウェアのNotesがあるのに、CodiMDをいれないといけないのだ?」に反論するまでのロジックが思い浮かばない。しばらくはローカルのエディタとして我慢するか。

 

HackMD/CodiMDのちょっと残念なところ

長文だと下の方にスクロールでずれる

5000字ぐらいのメモで編集・プレビュー同時表示の場合、下の方にスクロールして編集しようとすると何故かちょっと上の方にいって編集箇所が見えなくなってしまうという問題がある。編集Onlyの画面にすればよいのだけど、ちょっと残念。または文書を分けるか。

 

全文検索してくれない

タグを検索するとか文書タイトルは検索してくれるのだけど本文の中までは検索してくれない。私は定期的に文書をDropBoxに保存するようにしているからGrepすればいいんだけど、最新の内容がDropboxに落ちていない時もあるわけで、文書数が増えてきたからどこに書いたか探すのが大変になってきた。

とりあえずAutoHotKeyを使った自作のGrepツールでMarkdownの文書を保存しているディレクトリを検索対象にしてしのいでいます。

www.norick-matsumoto.com

 

 

 

 追記

hackmd / codimd がバージョン1.3になったので、変更点を以下の記事にまとめました。

もしよかったら御覧ください。

www.norick-matsumoto.com

 

 最後までお読みいただきありがとうございました。