今度は facebook 謹製のプログラミング言語で、 HHVM という仮想環境で動作する。
PHP をベースにして開発された言語で、PHP で書かれたコードのほとんどはそのまま Hack のスクリプトとして実行可能、とされている。
- https://qiita.com/azurite@github/items/1a7b58c2898aac34a7d0
- https://docs.hhvm.com/hhvm/getting-started/getting-started
CentOS や Ubuntu での構築事例はちらほらネットにあがっているようだし、Docker Hub にもイメージはあがっている模様。
公式サイトでは、Linux ではビルド済みパッケージのインストールを推奨、とある。(ソースからのビルドも出来るが推奨しない、と書かれている。)また、ビルド自体も Debian か Ubuntu で、とある。
ちょっとこれはソースからビルドするのはキツイか。
とりあえず、Debian と Ubuntu のイメージはまだ落としてないので、それぞれ落としてみる。で、サイズを比較してみた。(比較用に、CentOS と Alpine も並べている)
$ docker images debian latest 2d337f242f07 4 weeks ago 101MB ubuntu latest 94e814e2efa8 6 weeks ago 88.9MB alpine latest 5cb3aa00f899 6 weeks ago 5.53MB centos 7 9f38484d220f 5 weeks ago 202MB
軽いのは Ubuntu のようなので、そちらで試してみる。
Ubuntu のイメージから、インストール作業を進めていくと、下記のようなワーニングに遭遇。
Need to get 24.5 MB of archives. After this operation, 111 MB of additional disk space will be used. Do you want to continue? [Y/n]
てっきり、Docker for Mac の仮想ディスクがいっぱいになったものかと勘違いして、docker system prune をしたり、仮想ディスクの容量を増やしたりしてみたがダメだったので、一旦、Dockerfileで一気にインストールするのを止め、素の Ubuntu コンテナから、順にコマンドを実行してみる。
# apt-get install software-properties-common apt-transport-https
ここで、上記のワーニングが出たのだが、yをタイプすると、何事もなく進んだ。よくよく ビルドの出力を見てみると、「Do you want to continue? [Y/n]」のところで、Abort と出ているので、「apt-get install -y」としておかないといけなかったようだ。
また、hhvmのインストール途中で、タイムゾーンの設定でプロンプトへの入力が必要になるので、ちょっと Dockerfile で全部やろうとすると具合が悪いかもしれない。( hhvm 本体ではなく、tzdata とかいうパッケージのようだが)
かとおもって、改めて Dockerfile 化してみたが、「apt-get install -y」としても、「Do you want to continue?」のところでは Abort になってしまった。
ひょっとして、公開されているDockerイメージでダウンロードもされていて、メンテもされているものの、Dockerfileが公開されてないのって、この現象に関係する??(Dockerfileでビルドすると、途中で容量不足で落ちるのを回避できない?)
ラチがあかないので、妥協して「hhvm/hhvm-proxygen」を使ってみることにした。ただ、これでもイメージのビルドをして、hhvm をサーバーとして起動するところまでは行ったが、ホスト側のブラウザからアクセスすると、「404 File Not Found」となる。
コンテナのコンソールでHello Worldは動いていたので、何らかの設定がまずいんだろうけど・・・うーん。
とりあえず、コンテナのコンソール上でHello worldは動いたけれど。