4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DockerでHHVM/Hackを始める

Last updated at Posted at 2018-12-22

## 概要
この記事はHack and HHVM Advent Calendar 2018の23日目の記事になります。

連日@ytakeさんが、素晴らしい記事を上げてくれていますね。
今回はHHVMとHackについて興味がある自分が、Dockerで環境を作る話をしていこうと思います。
アドベントカレンダーの機会に入門していこうと思います。

環境構築

公式でDocker環境構築の手順があるので、それを参考にやってみます。

$ docker pull hhvm/hhvm
$ docker run --tty --interactive hhvm/hhvm:latest /bin/bash -l
# hhvm --version
HipHop VM 3.28.3 (rel)
Compiler: 1538421562_619401197
Repo schema: f2bcece3956424d62c386558e0a8e48a1de8e0b1

次にproxygenで立ち上げてみます。
こちらも公式に手順があるので、その通りに進めていきます。

Dockerfile
FROM hhvm/hhvm-proxygen:latest

RUN rm -rf /var/www
ADD . /var/www

EXPOSE 80
index.hh
<?hh // strict
echo "Hello World";
docker build .
docker run -p 0.0.0.0:80:80 コンテナID

この状態でブラウザにアクセスすると、Hello Worldが表示されます。

スクリーンショット 2018-12-19 15.53.12.png

最後に

とまあ、「公式ドキュメントをやっただじゃん」みたいなエントリーになりましたが、ここに辿り着くまでにも結構時間がかかったんですよね…。
HHVM/Hackに関しては、検索してもなかなかいい記事が見つからないですし、自分はDockerの知識もなく…。
HHVM/Hackに関しては、詰まったときは公式ドキュメントを読むのと、@ytakeさんの投稿を見るのが良いです。

おまけ

HackでもComposerを使って、ライブラリのインストールを行います。
自分のPCにHHVMとComposerを入れてしまっても良いですが、個人的に気になるので、Dockerでインストールします。

こちらは困っていた際に、導入方法に迷っていた際に@ytakeさんから助けてもらい、導入することができました。
ありがとうございました!

Dockerfileを下記のように変更します。

Dockerfile
FROM hhvm/hhvm-proxygen:latest

RUN rm -rf /var/www \
 && cd '/' \
 && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
 && php composer-setup.php \
 && php -r "unlink('composer-setup.php');" \
 && mv composer.phar /usr/local/bin/composer
ADD . /var/www

EXPOSE 80

これでOKです。
あとはコンテナをビルドし、sshで確認します。

$ docker build .
$ docker run --tty --interactive -v ホストディレクトリの絶対パス:/var/www/html コンテナID /bin/bash -l
# hhvm $(which composer)
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.8.0 2018-12-03 10:31:16

これでホストディレクトリに対して、Composerを使ったライブラリのインストールが出来るようになりました。

以上で終わります。
最後まで読んでいただきありがとうございました。

参考

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?