SculpinをDocker(+Compose)で動かす post

PHP製の静的サイトジェネレーターであるSculpinを、より手軽に試す環境をDocker Composeを使って作成します。

実験環境

  • Windows 8/10
  • Docker Toolbox (docker version 1.12.0)

インストール

Docker Toolboxのインストール

Windows 8 or 10 で、Docker Toolboxのインストーラをダウンロード、実行してください。

インストールが終わると、インストールされた起動ファイルの場所がエクスプローラで開かれます。

Docker Quickstart Terminalの実行

Docker Quickstart Terminal のアイコンをクリックして起動

ターミナルが問題なく起動したら、その中でdockerコマンドが使えるはずです。

$ docker --version
Docker version 1.12.0, build 8eab29e

akky/docker-sculpin を持ってくる

$ git clone https://github.com/akky/docker-sculpin.git
$ cd docker-sculpin

gitクライアントをインストールしていなければ、zipでダウンロードして7zip等のツールで展開するのでも構いません。

公式のサンプルブログを持ってくる

Sculpin公式のGet Startedで紹介されている、ブログのスケルトンを持ってきて、app/, source/ に展開します。

そのままでもいいのですが、テンプレート中の英語メッセージを、日本語に改造しています。

Docker Composeを実行

$ docker-compose build
$ docker-compose up

ブラウザからアクセス

できているdockerコンテナのIPアドレスを調べて

$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.12.1

この場合だと 192.168.99.100 なので、ブラウザで http://192.168.99.100/ へアクセスしてください。

生成されたサイトの確認

生成されたサイトは、output_dev/ 以下にできています。

デプロイ

公開用のサイトを作る場合、--env=prod でサイトを生成します。この時、draft: true と指定されたpostは生成しなくなります。(公開前の記事は、draft: true をつけておけばいいということです)

サーバのルートレベルではなくサブフォルダに配置したい、という場合は、generateコマンドの--url オプションにて、/ に変わるパスを指定します。

$ docker-compose run -d sculpin generate --env=prod --url=http://akimoto.jp/docker-sculpin

これをリモートサーバ等にデプロイするには、output_prod/ 以下をそのままサーバにrsyncなりでコピーするだけです。

もちろんDocker Composeでクラウド上のDocker machineにデプロイしてもいいですが、せっかくstaticで事足りているので、消費リソースの多いdocker containerじゃなくて、webサーバだけ動いてる最小のサーバで大丈夫。あるいはAmazon S3とかでも。

カテゴリ: 作業記録

タグ: Sculpin, Docker, Docker Compose, deployment