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とかでも。
カテゴリ: 作業記録