LoginSignup
18
17

More than 5 years have passed since last update.

Docker-composeで手軽に自前のHackMDを立ち上げてみる

Last updated at Posted at 2018-11-11

これは何?

私の技術メモです。

Dockerのコマンドとか調べてみたけど、いまいちピンと来ないので、
とりあえず何かサービスを立ち上げてみて楽しさとか利便性を感じてみたい。

やってみること

https://hackmd.io/
このサービスをDockerを使ってクラウドではなく自分のPCで立ち上げてみたい。
あまり細かいことは考えず、最低限で作業する。

HackMD
マークダウンでドキュメントを書き、共有や共同編集ができる。
この技術メモの目的とはそんなに関係無い。

クラウドでも利用できるが、GitHubにDocker-compose.ymlが上がってるので、それを使わせてもらえば自分の環境に建てたサーバで利用ができる。
https://github.com/hackmdio/codimd
ここからgit cloneしてDocker-composeを使ってみる。

Docker-compose
複数のコンテナを自動的に立ち上げてくれる。
今回目的とするHackMDはWebサーバとDBサーバが必要なので、Docker-composeを使えばWebサーバとDBサーバ用のコンテナが自動的に作られる。
Docker-compose.ymlというyaml形式の設定ファイルをもとに動く。

前提

PCのOSはWindows10です。
DockerホストはVagrantで立ち上げた仮想のubuntuとする。

やってみた

vagrantでubuntuを立ち上げる

今回の目的とそんなに関係無いので割愛。
とりあえずC:\vagrant\ubuntuvagrant upした想定とする。

Dockerをインストール

ここからはubuntuにssh接続でログインして作業。

sudo apt update
sudo apt install docker.io

インストールできたことを確認

docker --version
Docker version 18.06.1-ce, build e68fc7a

githubからclone

git clone https://github.com/hackmdio/docker-hackmd.git
cd docker-hackmd

Dockerをサービス起動

sudo service docker start

Docker-composeで一気にHackMDを起動

sudo docker-compose up
sudo: docker-compose: command not found

失敗。
docker-composeは別で入手する必要があるので、docker-composeもinstallしてから気を取り直してup!

sudo apt install docker-compose
sudo docker-compose up

docker-compose upがちゃんと動いたら、少し時間が掛かります。
listening at port 3000的なメッセージが出れば恐らく待ち受け状態になっている。
見てわかる通り、今回はWebサーバはポート3000で待ち受けている。

アクセスしてみよう

キャプチャ.PNG

動いた!

適当にアカウントを作ってサインインすれば、当然使えます。

キャプチャ2.PNG

作ったアカウントは記録されるし、作成したドキュメントは消えないし、コンテナを削除したりubuntu自体を再起動しても、docker-compose upし直せばちゃんと残っている。

補足

大まかに、Docker-composeの中で

  • コンテナイメージの取得
  • コンテナの生成
  • コンテナの起動(ボリュームマウント含む)

をやってくれている。
Dockerホストであるubuntuの上に、瞬時にWebサーバとDBサーバ(postgre)を起動する。
DBサーバに書き込まれたアカウントやドキュメントなど、永続化する必要のあるものはローカルに保存されるようにマウントまでしてくれている。故にデータが消えない。すごい。

18
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
17