手数をかけずにオンラインメモ帳環境をつくってみる。
環境
- インフラ
- GCE(GCP)
- docker-compose
- アプリケーション
- HackMD
- PostgreSQL(MySQLも可)
今回はGCPの無料枠でやってみるのでGCP公式の手順に沿って実施する。
GCEインスタンスの作成
GUIでポチポチしていくだけなのでかんたん。
左上のメニュー「≡」からCompute Engineを選択し、VMインスタンスを作成する。
今回は無料枠なのでMicroを選択。
ブートディスクはContainer-Optimized OSのstableで一番新しいものを選択する。
=> なぜかうまく行かなかったのでContainer-Optimized OS, 69-10895.385.0 stableで作り直した。
SSHでログインしDockerの起動
作成後、ターミナルからSSHでログインする。
ログイン情報は以下から確認できる。
SSHでログイン後、docker-composeをセットアップ。
docker run docker/compose:1.24.0 version
HackMDのdockerリポジトリをclone。
git clone https://github.com/hackmdio/docker-hackmd.git
cd docker-hackmd/
80番ポートで接続できるようにdockerホストの80ポートをコンテナの3000ポートにフォワード。
~略~
app:
ports:
# 3000を80に変更
# - "3000:3000"
- "80:3000"
~略~
docker-composeコマンドのエイリアスを作成する。
echo alias docker-compose="'"'docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$PWD:$PWD" \
-w="$PWD" \
docker/compose:1.24.0'"'" >> ~/.bashrc
反映。
$ source ~/.bashrc
docker-composeで起動。
$ docker-compose up -d
Starting docker-hackmd_database_1 ... done
Starting docker-hackmd_app_1 ... done
これで以下のURLにアクセスすればCodiMDのページが!
(番外編)ポートの穴あけ
あえてdocker-compose.ymlを編集せずに3000番ポートに穴をあけてみるパターンも試してみた。(試してみたかっただけ)
インスタンスの「ネットワーク詳細を表示」を選択。
左のファイアウォールルールから「ファイアウォールルールを作成」を選択。
以下のように3000番ポートを許可するルールを作成する。
項目 | 入力内容 |
---|---|
名前 | allow-3000 |
ターゲットタグ | allow3000-server |
IP範囲 | 0.0.0.0/0 |
プロトコルとポート | tcp:3000 |
GCEインスタンスに戻り、編集を選択する。
ネットワークタグに先程作成した「allow3000-server」を入力して保存。
これでポートを指定すればCodiMDのページが表示される。