Dockerで開発環境 Hack編・・・は難航中

今度は 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は動いたけれど。

 

 

タグ: # # # #
コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA