開発中の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;」を指定している
詳細はコミットをご参照ください。
関連リンク
- GitHub リポジトリ:iwamot/docker-phd-ja
- Docker Hub リポジトリ:iwamot/phd-ja
- Docker環境でPHPマニュアルの翻訳に参加してみませんか? (2018-06-11)
- ブラウザでPHPマニュアルがビルドできたら便利ですよね? (2018-06-15)