開発中のPHPマニュアル日本語版ビルド用Dockerイメージで、Webアプリ経由でのビルドが可能になりました。

実際に動かした結果がこれです。

色指定部分が化けていますが、別途修正予定です。

ビルドだけでなく、ソースのチェックアウトと、PhDの設定ファイル更新もできるようにしました。

試してみる

試したい方は下記の手順でどうぞ。Docker がインストールされていれば、すぐ動かせます。

docker pull iwamot/phd-ja
docker create -it -p 8080:80 --name phd-ja iwamot/phd-ja
docker start phd-ja

その後 http://localhost:8080/phd-ja-admin/ の管理画面にアクセスすると、現状では下記のボタンが表示されます。

「Build documentation」ボタンを押すと、ビルドが始まります。冒頭の画像のようになれば成功です。

ビルドされたマニュアルは http://localhost:8080/phd-ja/ で参照できます。

Docker コンテナがいらなくなったら、下記の手順で削除できます。

docker stop phd-ja
docker rm phd-ja

管理画面のTODO

  • 各コマンドの実行完了をわかりやすくする(Notifications API を使う?)
  • 色指定が化けないようにする(指定色で表示させる)
  • ファイルの編集を可能にする(テキストエリアにペーストして保存できるだけでも便利)
  • デザインをきれいにする(いかにも管理画面っぽい感じに)

技術的なメモ

  • Webサーバ上のPHPから外部コマンドを実行するために sudo を使っている
    • 初回実行時のパスワード入力をイメージ側で済ませている
    • 実行可能なコマンドは /etc/sudoers.d/phd-ja で制限している
      • /etc/sudoers.d/ 配下にドットを含むファイルを置いても無視されることに注意
  • nginx の出力バッファリングを無効にするために「X-Accel-Buffering: no」ヘッダを出力している
  • タイムアウトを避けるため、nginx の設定で「fastcgi_read_timeout 300;」を指定している

詳細はコミットをご参照ください。

関連リンク