BackEnd

軽量なAlpine Linuxイメージでgitbookのローカル環境を構築する

投稿日:2018年9月20日 更新日:

はじめに

前回の記事でご紹介したgitbookですが、環境構築の方法はローカルに直接node.jsを入れるものでした。できればローカル環境は汚さず、Dockerで構築できるに越したことはない…と考えておりました。

ググってみるとbillryan/gitbookというイメージが公開されておりDockerfiledocker-compose.ymlを一切書かず、dockerコマンドをコピペ実行するだけでgitbookを動かすことができます。
ただこのイメージは1.34GBとそこそこ容量を食うため「試すだけなら最小限のリソースで!」→「Alpine Linuxで何とかできないかな?」と思い立ち、試してみました。

Alpine Linuxとは

  • 超軽量なLinuxディストリビューションです。とにかく容量が小さく、OS最小構成だと5MB(!)を下回ります。CentOSの最新版が約200MBですから、圧倒的な差です。
  • Docker用というわけではありませんが、その軽量っぷりでDocker界隈では人気のようです。
  • 今回は出てきませんが、apkという独自のパッケージ管理システムを使います。

Docker本体のインストール

環境はmacOS High Sierra 10.13.6を前提としています。すでにDockerがPCにインストール済みであれば、この項目は読み飛ばしてください。

インストール手順は簡単です。Docker公式でdmgファイルをダウンロードして実行するだけです(ダウンロードの際、アカウント作成が必要になります)。
インストール完了したらターミナルで確認しましょう。

サンプルリポジトリのダウンロード

まっさらな状態のGitbookに1ファイルだけ追加したリポジトリを作成しました。ローカルに適当なディレクトリを作成し、その中で実行してください。

dockerイメージ作成

公開されているAlpine Linuxイメージから、node.js用のイメージを取得してビルドします。vi ~/test/gitbook-sample/DockerfileでDockerfileを作成し、以下のように記述してください。

Node.js用のAlpine Linuxイメージが追加されました。サイズは342MBで、最小構成の5GB未満と比べるとさすがに容量が増えていますが、billryan/gitbookに比べて4分の1程度に抑えることができました。

Gitbook初期化&実行

initからserveまでを実行します。

ここまで成功すれば、ブラウザで閲覧できる状態になります。ターミナルに出力されているhttp://localhost:4000にアクセスしてみましょう。

Dockerの状態確認、停止など

上記のコマンドで起動はできていますが、Serving book on http://localhost:4000のままCTRL+Cも受け付けない状態になっていると思います。
ターミナルを別ウィンドウで立ち上げて、Dockerの状態を確認してみましょう。

さいごに

いかがでしたでしょうか。Dockerfileやdocker-compose.ymlを細かく設定して、いかにイメージの容量を削るかを目指す場合もあるようですが、今回はなるべく軽量・なるべく簡素を目標としてみました。
Dockerには最近触れ始めたばかりですが、すでにバックエンドの技術としてはデファクトスタンダードになっているらしく、少し危機感を覚えています。引き続き学習し、実用に持っていきたいと思います。

参考

page_footer_300rect




page_footer_300rect




-BackEnd
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

Vue.js入門その4〜TODOアプリにサーバーサイドを追加してみる〜

1 はじめに2 準備2.1 今回作成したいもの2.2 環境構築3 サーバーサイド3.1 DB3.2 メモ:rails generateで余分なファイルを生成しない3.3 作成したファイル4 ビューの作 ...

rails

Active Strageを使用してユーザーのアバターを登録、表示する

1 はじめに1.1 環境2 セットアップ2.1 前準備2.2 マイグレーションファイル作成2.3 設定ファイル3 実際に使って見る3.1 モデル3.2 コントローラー3.3 ビュー4 個人的メモ4.1 ...

rails

RailsでS3に画像をアップロードする

1 はじめに2 今回やりたいこと3 下準備3.1 ImageMagickをインストールする3.2 Gemをインストールする4 レコード生成時にファイルを指定してアップロードする4.1 アップローダを作 ...

rails

ShrineでS3に画像をアップロードする

1 はじめに1.1 前提条件1.2 関連記事2 AWS側の準備2.1 S3バケットを作成する2.2 CORSを設定する2.3 アクセス用のユーザを作成する3 Rails側の設定3.1 Initiali ...

rails

さらば「rails migrate」、よろしく「ridgepole」

1 はじめに2 Ridgepoleとは3 rails migrateではなく、Ridgepoleを選定した理由4 rails migrateからRidgepoleへの移行手順5 capistrano3 ...

フォロー

follow us in feedly

AppLink

英語

page_side_300rect

2018年9月
« 8月 10月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30 

アプリ情報

目標を達成したい方を応援する、TODOアプリもリリースしております。 下記のアイコンから無料でダウンロードできます。

Web版MyCoach

私たちはより広い方にコーチングを知ってもらいたいと考えています。 下記のサイトにて、コーチの方々を紹介しておりますので、よろしければご覧ください。