Quellcode durchsuchen

Port hhvm tests to docker (#3458)

* Port hhvm tests to docker

The slim tests are flaky locally.  I think it gets upset after the
/db?queries=501 request, and then the test that runs after that may
fail even though it succeeds if run by itself.

* Disable slim tests, which are flaky
Michael Hixson vor 7 Jahren
Ursprung
Commit
114f8494b1
51 geänderte Dateien mit 431 neuen und 552 gelöschten Zeilen
  1. 3 3
      .travis.yml
  2. 0 11
      frameworks/PHP/codeigniter/.gitignore
  3. 0 0
      frameworks/PHP/codeigniter/application/views/errors/html/error_404.php
  4. 0 0
      frameworks/PHP/codeigniter/application/views/errors/html/error_db.php
  5. 0 0
      frameworks/PHP/codeigniter/application/views/errors/html/error_general.php
  6. 0 0
      frameworks/PHP/codeigniter/application/views/errors/html/error_php.php
  7. 0 0
      frameworks/PHP/codeigniter/application/views/errors/html/index.html
  8. 4 42
      frameworks/PHP/codeigniter/benchmark_config.json
  9. 9 0
      frameworks/PHP/codeigniter/codeigniter-hhvm.dockerfile
  10. 9 0
      frameworks/PHP/codeigniter/codeigniter.dockerfile
  11. 6 5
      frameworks/PHP/codeigniter/deploy/config.hdf
  12. 42 0
      frameworks/PHP/codeigniter/deploy/nginx-fpm.conf
  13. 42 0
      frameworks/PHP/codeigniter/deploy/nginx-hhvm.conf
  14. 0 134
      frameworks/PHP/codeigniter/deploy/nginx.conf
  15. 0 9
      frameworks/PHP/codeigniter/deploy/php-codeigniter
  16. 0 9
      frameworks/PHP/codeigniter/setup.sh
  17. 0 13
      frameworks/PHP/codeigniter/setup_hhvm.sh
  18. 0 2
      frameworks/PHP/hhvm/.gitignore
  19. 0 1
      frameworks/PHP/hhvm/benchmark_config.json
  20. 6 5
      frameworks/PHP/hhvm/deploy/config-debug.hdf
  21. 6 5
      frameworks/PHP/hhvm/deploy/config.hdf
  22. 6 6
      frameworks/PHP/hhvm/deploy/nginx.conf
  23. 7 0
      frameworks/PHP/hhvm/hhvm.dockerfile
  24. 0 13
      frameworks/PHP/hhvm/setup_hhvm.sh
  25. 0 12
      frameworks/PHP/slim/.gitignore
  26. 3 6
      frameworks/PHP/slim/benchmark_config.json
  27. 5 4
      frameworks/PHP/slim/deploy/config.hdf
  28. 41 0
      frameworks/PHP/slim/deploy/nginx-fpm-5.conf
  29. 41 0
      frameworks/PHP/slim/deploy/nginx-fpm-7.conf
  30. 41 0
      frameworks/PHP/slim/deploy/nginx-hhvm.conf
  31. 0 133
      frameworks/PHP/slim/deploy/nginx.conf
  32. 0 9
      frameworks/PHP/slim/deploy/php-slim
  33. 1 1
      frameworks/PHP/slim/index.php
  34. 0 10
      frameworks/PHP/slim/setup.sh
  35. 0 14
      frameworks/PHP/slim/setup_hhvm.sh
  36. 0 10
      frameworks/PHP/slim/setup_php5.sh
  37. 9 0
      frameworks/PHP/slim/slim-hhvm.dockerfile
  38. 9 0
      frameworks/PHP/slim/slim-php5.dockerfile
  39. 9 0
      frameworks/PHP/slim/slim.dockerfile
  40. 0 2
      frameworks/PHP/yii2/.gitignore
  41. 0 2
      frameworks/PHP/yii2/benchmark_config.json
  42. 6 5
      frameworks/PHP/yii2/deploy/config.hdf
  43. 47 0
      frameworks/PHP/yii2/deploy/nginx-fpm.conf
  44. 47 0
      frameworks/PHP/yii2/deploy/nginx-hhvm.conf
  45. 0 66
      frameworks/PHP/yii2/deploy/nginx.conf
  46. 0 9
      frameworks/PHP/yii2/setup.sh
  47. 0 11
      frameworks/PHP/yii2/setup_hhvm.sh
  48. 9 0
      frameworks/PHP/yii2/yii2-hhvm.dockerfile
  49. 9 0
      frameworks/PHP/yii2/yii2.dockerfile
  50. 7 0
      toolset/setup/docker/languages/hhvm-php5.dockerfile
  51. 7 0
      toolset/setup/docker/languages/hhvm-php7.dockerfile

+ 3 - 3
.travis.yml

@@ -120,10 +120,10 @@ env:
      - "TESTDIR=Perl/plack"
      - "TESTDIR=Perl/web-simple"
      - "TESTDIR=PHP/cakephp"
-    # - "TESTDIR=PHP/hhvm"
+     - "TESTDIR=PHP/hhvm"
     # - "TESTDIR=PHP/php"
+     - "TESTDIR=PHP/codeigniter"
      - "TESTDIR=PHP/cygnite"
-    # - "TESTDIR=PHP/codeigniter"
      - "TESTDIR=PHP/clancats"
     # - "TESTDIR=PHP/fat-free"
     # - "TESTDIR=PHP/fuel"
@@ -142,7 +142,7 @@ env:
     # - "TESTDIR=PHP/symfony"
     # - "TESTDIR=PHP/workerman"
     # - "TESTDIR=PHP/yaf"
-    # - "TESTDIR=PHP/yii2"
+     - "TESTDIR=PHP/yii2"
      - "TESTDIR=PHP/zend"
      - "TESTDIR=PHP/zend1"
     # - "TESTDIR=PHP/phreeze"

+ 0 - 11
frameworks/PHP/codeigniter/.gitignore

@@ -1,11 +0,0 @@
-/app/cache
-/app/logs
-/bin
-/vendors
-/build
-/dist
-.DS_Store
-/tags
-.idea
-vendor
-deploy/php-fpm.pid

+ 0 - 0
frameworks/PHP/codeigniter/application/views/errors/error_404.php → frameworks/PHP/codeigniter/application/views/errors/html/error_404.php


+ 0 - 0
frameworks/PHP/codeigniter/application/views/errors/error_db.php → frameworks/PHP/codeigniter/application/views/errors/html/error_db.php


+ 0 - 0
frameworks/PHP/codeigniter/application/views/errors/error_general.php → frameworks/PHP/codeigniter/application/views/errors/html/error_general.php


+ 0 - 0
frameworks/PHP/codeigniter/application/views/errors/error_php.php → frameworks/PHP/codeigniter/application/views/errors/html/error_php.php


+ 0 - 0
frameworks/PHP/codeigniter/application/views/errors/index.html → frameworks/PHP/codeigniter/application/views/errors/html/index.html


+ 4 - 42
frameworks/PHP/codeigniter/benchmark_config.json

@@ -2,45 +2,7 @@
   "framework": "codeigniter",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/index.php/bench/json",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Fullstack",
-      "database": "None",
-      "framework": "codeigniter",
-      "language": "PHP",
-      "flavor": "PHP5",
-      "orm": "Raw",
-      "platform": "None",
-      "webserver": "nginx",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "codeigniter",
-      "notes": "",
-      "versus": "php-php5"
-    },
-    "hhvm": {
-      "setup_file": "setup_hhvm",
-      "json_url": "/index.php/bench/json",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Fullstack",
-      "database": "None",
-      "framework": "codeigniter",
-      "language": "PHP",
-      "flavor": "HHVM",
-      "orm": "Raw",
-      "platform": "None",
-      "webserver": "nginx",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "codeigniter_hhvm",
-      "notes": "",
-      "versus": "php-php5"
-    },
-    "raw": {
-      "setup_file": "setup",
       "db_url": "/index.php/bench/db",
       "query_url": "/index.php/bench/db/",
       "fortune_url": "/index.php/bench/fortunes",
@@ -58,10 +20,10 @@
       "database_os": "Linux",
       "display_name": "codeigniter",
       "notes": "",
-      "versus": "php-php5"
+      "versus": "php"
     },
-    "raw_hhvm": {
-      "setup_file": "setup_hhvm",
+    "hhvm": {
+      "json_url": "/index.php/bench/json",
       "db_url": "/index.php/bench/db",
       "query_url": "/index.php/bench/db/",
       "fortune_url": "/index.php/bench/fortunes",
@@ -79,7 +41,7 @@
       "database_os": "Linux",
       "display_name": "codeigniter_hhvm",
       "notes": "",
-      "versus": "php-php5"
+      "versus": "php"
     }
   }]
 }

+ 9 - 0
frameworks/PHP/codeigniter/codeigniter-hhvm.dockerfile

@@ -0,0 +1,9 @@
+FROM tfb/hhvm-php7:latest
+
+ADD ./ /codeigniter
+WORKDIR /codeigniter
+
+RUN composer.phar install --no-progress
+
+CMD hhvm -m daemon --config /codeigniter/deploy/config.hdf && \
+    nginx -c /codeigniter/deploy/nginx-hhvm.conf -g "daemon off;"

+ 9 - 0
frameworks/PHP/codeigniter/codeigniter.dockerfile

@@ -0,0 +1,9 @@
+FROM tfb/php7:latest
+
+ADD ./ /codeigniter
+WORKDIR /codeigniter
+
+RUN composer.phar install --no-progress
+
+CMD service php7.2-fpm start && \
+    nginx -c /codeigniter/deploy/nginx-fpm.conf -g "daemon off;"

+ 6 - 5
frameworks/PHP/codeigniter/deploy/config.hdf

@@ -1,16 +1,17 @@
 # main configuration file
 
 # Application PID File
-PidFile = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/codeigniter/hhvm.pid
+PidFile = /codeigniter/hhvm.pid
 
 # Server settings
 Server {
-  Port = 9001
+  FileSocket = /codeigniter/hhvm.sock
   Type = fastcgi
-  SourceRoot = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/codeigniter
+  SourceRoot = /codeigniter
   DefaultDocument = index.php
   GzipCompressionLevel = 0
   EnableKeepAlive = true
+  AllowRunAsRoot = 1
 }
 
 # Disable logging completely
@@ -18,7 +19,7 @@ Log {
   UseLogFile = false
   UseSyslog = false
   Level = Error
-  #File = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/codeigniter/error.log
+  #File = /codeigniter/error.log
 }
 
 # Enable jit for production mode
@@ -30,7 +31,7 @@ Eval {
 # Repo file
 Repo {
   Central {
-    Path = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/codeigniter/.hhvm.bbhc
+    Path = /codeigniter/.hhvm.bbhc
   }
 }
 

+ 42 - 0
frameworks/PHP/codeigniter/deploy/nginx-fpm.conf

@@ -0,0 +1,42 @@
+user root;
+worker_processes  auto;
+error_log stderr error;
+
+events {
+  worker_connections 16384;
+}
+
+http {
+  include /nginx/conf/mime.types;
+  default_type application/octet-stream;
+  access_log off;
+  server_tokens off;
+  sendfile on;
+  keepalive_timeout 65;
+
+  upstream fastcgi_backend {
+    server unix:/var/run/php/php7.2-fpm.sock;
+    keepalive 50;
+  }
+
+  server {
+    listen 8080;
+    server_name localhost;
+
+    root /codeigniter/;
+    index index.php;
+
+    location / {
+      try_files $uri $uri/ /index.php?$uri&$args;
+    }
+
+    location ~ \.php$ {
+      try_files $uri =404;
+      fastcgi_pass fastcgi_backend;
+      fastcgi_keep_conn on;
+      fastcgi_index index.php;
+      fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
+      include /nginx/conf/fastcgi_params;
+    }
+  }
+}

+ 42 - 0
frameworks/PHP/codeigniter/deploy/nginx-hhvm.conf

@@ -0,0 +1,42 @@
+user root;
+worker_processes  auto;
+error_log stderr error;
+
+events {
+  worker_connections 16384;
+}
+
+http {
+  include /nginx/conf/mime.types;
+  default_type application/octet-stream;
+  access_log off;
+  server_tokens off;
+  sendfile on;
+  keepalive_timeout 65;
+
+  upstream fastcgi_backend {
+    server unix:/codeigniter/hhvm.sock;
+    keepalive 50;
+  }
+
+  server {
+    listen 8080;
+    server_name localhost;
+
+    root /codeigniter/;
+    index index.php;
+
+    location / {
+      try_files $uri $uri/ /index.php?$uri&$args;
+    }
+
+    location ~ \.php$ {
+      try_files $uri =404;
+      fastcgi_pass fastcgi_backend;
+      fastcgi_keep_conn on;
+      fastcgi_index index.php;
+      fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
+      include /nginx/conf/fastcgi_params;
+    }
+  }
+}

+ 0 - 134
frameworks/PHP/codeigniter/deploy/nginx.conf

@@ -1,134 +0,0 @@
-#user  nobody;
-worker_processes  auto;
-
-#error_log  logs/error.log;
-#error_log  logs/error.log  notice;
-#error_log  logs/error.log  info;
-error_log stderr error;
-
-#pid        logs/nginx.pid;
-
-
-events {
-  worker_connections  16384;
-}
-
-
-http {
-  include       /usr/local/nginx/conf/mime.types;
-  default_type  application/octet-stream;
-
-  #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
-  #                  '$status $body_bytes_sent "$http_referer" '
-  #                  '"$http_user_agent" "$http_x_forwarded_for"';
-
-  #access_log  logs/access.log  main;
-  access_log off;
-  server_tokens off;
-
-  sendfile        on;
-  #tcp_nopush     on;
-
-  #keepalive_timeout  0;
-  keepalive_timeout  65;
-
-  #gzip  on;
-
-  upstream fastcgi_backend {
-    server 127.0.0.1:9001;
-    keepalive 50;
-  }
-
-  server {
-    listen       8080;
-    server_name  localhost;
-
-    #charset koi8-r;
-
-    #access_log  logs/host.access.log  main;
-
-    #location / {
-    #    root   html;
-    #    index  index.html index.htm;
-    #}
-
-    #error_page  404              /404.html;
-
-    # redirect server error pages to the static page /50x.html
-    #
-    #error_page   500 502 503 504  /50x.html;
-    #location = /50x.html {
-    #    root   html;
-    #}
-
-    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
-    #
-    #location ~ \.php$ {
-    #    proxy_pass   http://127.0.0.1;
-    #}
-
-    root /home/pfalls/FrameworkBenchmarks/php-codeigniter/;
-    index  index.php;
-
-    location / {
-      try_files $uri $uri/ /index.php?$uri&$args;
-    }
-
-    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
-    #
-    location ~ \.php$ {
-      try_files $uri =404;
-      fastcgi_pass   fastcgi_backend;
-      fastcgi_keep_conn on;
-      fastcgi_index  index.php;
-      #            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
-      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
-      include        /usr/local/nginx/conf/fastcgi_params;
-    }
-
-    # deny access to .htaccess files, if Apache's document root
-    # concurs with nginx's one
-    #
-    #location ~ /\.ht {
-    #    deny  all;
-    #}
-  }
-
-
-  # another virtual host using mix of IP-, name-, and port-based configuration
-  #
-  #server {
-  #    listen       8000;
-  #    listen       somename:8080;
-  #    server_name  somename  alias  another.alias;
-
-  #    location / {
-  #        root   html;
-  #        index  index.html index.htm;
-  #    }
-  #}
-
-
-  # HTTPS server
-  #
-  #server {
-  #    listen       443;
-  #    server_name  localhost;
-
-  #    ssl                  on;
-  #    ssl_certificate      cert.pem;
-  #    ssl_certificate_key  cert.key;
-
-  #    ssl_session_timeout  5m;
-
-  #    ssl_protocols  SSLv2 SSLv3 TLSv1;
-  #    ssl_ciphers  HIGH:!aNULL:!MD5;
-  #    ssl_prefer_server_ciphers   on;
-
-  #    location / {
-  #        root   html;
-  #        index  index.html index.htm;
-  #    }
-  #}
-
-}

+ 0 - 9
frameworks/PHP/codeigniter/deploy/php-codeigniter

@@ -1,9 +0,0 @@
-<VirtualHost *:8080>
-  Alias /php-codeigniter/ "/home/ubuntu/FrameworkBenchmarks/php-codeigniter/"
-  <Directory /home/ubuntu/FrameworkBenchmarks/php-codeigniter>
-          Options Indexes FollowSymLinks MultiViews
-          #AllowOverride None
-          Order allow,deny
-          allow from all
-  </Directory>
-</VirtualHost>

+ 0 - 9
frameworks/PHP/codeigniter/setup.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql php7 nginx composer
-
-sed -i 's|root .*/FrameworkBenchmarks/php-codeigniter|root '"${TROOT}"'|g' deploy/nginx.conf
-sed -i 's|/usr/local/nginx/|'"${IROOT}"'/nginx/|g' deploy/nginx.conf
-
-php-fpm --fpm-config $FWROOT/toolset/setup/linux/languages/php/php-fpm.conf -g $TROOT/deploy/php-fpm.pid
-nginx -c $TROOT/deploy/nginx.conf

+ 0 - 13
frameworks/PHP/codeigniter/setup_hhvm.sh

@@ -1,13 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql php7 nginx composer hhvm
-
-sed -i 's|SourceRoot = .*/FrameworkBenchmarks/codeigniter|SourceRoot = '"${TROOT}"'|g' deploy/config.hdf
-sed -i 's|Path = .*/.hhvm.hhbc|Path = '"${TROOT}"'/.hhvm.bbhc|g' deploy/config.hdf
-sed -i 's|PidFile = .*/hhvm.pid|PidFile = '"${TROOT}"'/hhvm.pid|g' deploy/config.hdf
-sed -i 's|File = .*/error.log|File = '"${TROOT}"'/error.log|g' deploy/config.hdf
-sed -i 's|root .*/FrameworkBenchmarks/php-codeigniter|root '"${TROOT}"'|g' deploy/nginx.conf
-sed -i 's|/usr/local/nginx/|'"${IROOT}"'/nginx/|g' deploy/nginx.conf
-
-hhvm -m daemon --config $TROOT/deploy/config.hdf --user $(whoami)
-nginx -c $TROOT/deploy/nginx.conf

+ 0 - 2
frameworks/PHP/hhvm/.gitignore

@@ -1,2 +0,0 @@
-/.hhvm.bbhc
-/hhvm.pid

+ 0 - 1
frameworks/PHP/hhvm/benchmark_config.json

@@ -3,7 +3,6 @@
   "tests":
     [{
       "default": {
-        "setup_file"     : "setup_hhvm",
         "json_url"       : "/json.php",
         "db_url"         : "/db.php",
         "query_url"      : "/queries.php?queries=",

+ 6 - 5
frameworks/PHP/hhvm/deploy/config-debug.hdf

@@ -1,16 +1,17 @@
 # Debugging configuration file
 
 # Application PID File
-PidFile = /tmp/FrameworkBenchmarks/hhvm/hhvm.pid
+PidFile = /hhvm_app/hhvm.pid
 
 # Server settings
 Server {
-  Port = 9001
+  FileSocket = /hhvm_app/hhvm.sock
   Type = fastcgi
-  SourceRoot = /tmp/FrameworkBenchmarks/hhvm
+  SourceRoot = /hhvm_app
   DefaultDocument = index.php
   GzipCompressionLevel = 0
   EnableKeepAlive = true
+  AllowRunAsRoot = 1
 }
 
 # Enable debug logging
@@ -18,7 +19,7 @@ Log {
   UseLogFile = true
   UseSyslog = false
   Level = Verbose
-  File = /tmp/FrameworkBenchmarks/hhvm/error.log
+  File = /hhvm_app/error.log
 }
 
 # Enable jit for production mode
@@ -30,7 +31,7 @@ Eval {
 # Repo file
 Repo {
   Central {
-    Path = /tmp/FrameworkBenchmarks/hhvm/.hhvm.hhbc
+    Path = /hhvm_app/.hhvm.hhbc
   }
 }
 

+ 6 - 5
frameworks/PHP/hhvm/deploy/config.hdf

@@ -1,16 +1,17 @@
 # main configuration file
 
 # Application PID File
-PidFile = /tmp/FrameworkBenchmarks/hhvm/hhvm.pid
+PidFile = /hhvm_app/hhvm.pid
 
 # Server settings
 Server {
-  Port = 9001
+  FileSocket = /hhvm_app/hhvm.sock
   Type = fastcgi
-  SourceRoot = /tmp/FrameworkBenchmarks/hhvm
+  SourceRoot = /hhvm_app
   DefaultDocument = index.php
   GzipCompressionLevel = 0
   EnableKeepAlive = true
+  AllowRunAsRoot = 1
 }
 
 # Disable logging completely
@@ -18,7 +19,7 @@ Log {
   UseLogFile = false
   UseSyslog = false
   Level = Error
-  #File = /tmp/FrameworkBenchmarks/hhvm/error.log
+  #File = /hhvm_app/error.log
 }
 
 # Enable jit for production mode
@@ -30,7 +31,7 @@ Eval {
 # Repo file
 Repo {
   Central {
-    Path = /tmp/FrameworkBenchmarks/hhvm/.hhvm.hhbc
+    Path = /hhvm_app/.hhvm.hhbc
   }
 }
 

+ 6 - 6
frameworks/PHP/hhvm/deploy/nginx.conf

@@ -1,3 +1,4 @@
+user root;
 worker_processes  auto;
 error_log stderr error;
 
@@ -6,30 +7,29 @@ events {
 }
 
 http {
-    include       /usr/local/nginx/conf/mime.types;
+    include       /nginx/conf/mime.types;
     default_type  application/octet-stream;
     access_log off;
     server_tokens off;
 
     sendfile        on;
     keepalive_timeout  65;
+
     upstream fastcgi_backend {
-        server 127.0.0.1:9001;
+        server unix:/hhvm_app/hhvm.sock;
         keepalive 50;
     }
 
     server {
         listen       8080;
         server_name  localhost;
-        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9001
         location ~ \.(hh|php)$ {
-            root TEST_ROOT;
+            root /hhvm_app;
             fastcgi_keep_conn on;
             fastcgi_pass   fastcgi_backend;
-            #fastcgi_pass   127.0.0.1:9001;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
-            include        /usr/local/nginx/conf/fastcgi_params;
+            include        /nginx/conf/fastcgi_params;
         }
     }
 }

+ 7 - 0
frameworks/PHP/hhvm/hhvm.dockerfile

@@ -0,0 +1,7 @@
+FROM tfb/hhvm-php7:latest
+
+ADD ./ /hhvm_app
+WORKDIR /hhvm_app
+
+CMD hhvm -m daemon --config /hhvm_app/deploy/config.hdf && \
+    nginx -c /hhvm_app/deploy/nginx.conf -g "daemon off;"

+ 0 - 13
frameworks/PHP/hhvm/setup_hhvm.sh

@@ -1,13 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql nginx php7 hhvm
-
-sed -i 's|SourceRoot = .*/FrameworkBenchmarks/hhvm|SourceRoot = '"${TROOT}"'|g' deploy/config.hdf
-sed -i 's|Path = .*/.hhvm.hhbc|Path = '"${TROOT}"'/.hhvm.bbhc|g' deploy/config.hdf
-sed -i 's|PidFile = .*/hhvm.pid|PidFile = '"${TROOT}"'/hhvm.pid|g' deploy/config.hdf
-sed -i 's|File = .*/error.log|File = '"${TROOT}"'/error.log|g' deploy/config.hdf
-sed -i "s|/usr/local/nginx/|${IROOT}/nginx/|g" deploy/nginx.conf
-sed -i "s|TEST_ROOT|${TROOT}|g" deploy/nginx.conf
-
-hhvm -m daemon --config $TROOT/deploy/config.hdf --user $(whoami)
-nginx -c $TROOT/deploy/nginx.conf

+ 0 - 12
frameworks/PHP/slim/.gitignore

@@ -1,12 +0,0 @@
-deploy/nginx.conf
-deploy/php-fpm.pid
-/app/cache
-/app/logs
-/bin
-/vendors
-/build
-/dist
-.DS_Store
-/tags
-.idea
-/vendor

+ 3 - 6
frameworks/PHP/slim/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "slim",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "plaintext_url": "/plaintext",
       "json_url": "/json",
       "db_url": "/db",
@@ -23,10 +22,9 @@
       "database_os": "Linux",
       "display_name": "slim",
       "notes": "",
-      "versus": "php7"
+      "versus": ""
     },
     "hhvm": {
-      "setup_file": "setup_hhvm",
       "plaintext_url": "/plaintext",
       "json_url": "/json",
       "db_url": "/db",
@@ -47,10 +45,9 @@
       "database_os": "Linux",
       "display_name": "slim",
       "notes": "",
-      "versus": "php5"
+      "versus": ""
     },
     "php5": {
-      "setup_file": "setup_php5",
       "plaintext_url": "/plaintext",
       "json_url": "/json",
       "db_url": "/db",
@@ -71,7 +68,7 @@
       "database_os": "Linux",
       "display_name": "slim",
       "notes": "",
-      "versus": "php-php5"
+      "versus": ""
     }
   }]
 }

+ 5 - 4
frameworks/PHP/slim/deploy/config.hdf

@@ -5,12 +5,13 @@ PidFile = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/php-slim/hhvm.pid
 
 # Server settings
 Server {
-  Port = 9001
+  FileSocket = /slim/hhvm.sock
   Type = fastcgi
-  SourceRoot = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/php-slim
+  SourceRoot = /slim
   DefaultDocument = index.php
   GzipCompressionLevel = 0
   EnableKeepAlive = true
+  AllowRunAsRoot = 1
 }
 
 # Disable logging completely
@@ -18,7 +19,7 @@ Log {
   UseLogFile = false
   UseSyslog = false
   Level = Error
-  #File = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/php-slim/error.log
+  #File = /slim/error.log
 }
 
 # Enable jit for production mode
@@ -30,7 +31,7 @@ Eval {
 # Repo file
 Repo {
   Central {
-    Path = /home/vagrant/FrameworkBenchmarks/frameworks/PHP/php-slim/.hhvm.bbhc
+    Path = /slim/.hhvm.bbhc
   }
 }
 

+ 41 - 0
frameworks/PHP/slim/deploy/nginx-fpm-5.conf

@@ -0,0 +1,41 @@
+user root;
+worker_processes 8;
+error_log stderr error;
+
+events {
+    worker_connections 1024;
+}
+
+http {
+    include /nginx/conf/mime.types;
+    default_type application/octet-stream;
+    access_log off;
+    sendfile on;
+    keepalive_timeout 65;
+
+    upstream fastcgi_backend {
+        server unix:/var/run/php/php5.6-fpm.sock;
+        keepalive 50;
+    }
+
+    server {
+        listen 8080;
+        server_name localhost;
+
+        root /slim/;
+        index index.php;
+
+        location / {
+            try_files $uri $uri/ /index.php?$uri&$args;
+        }
+
+        location ~ \.php$ {
+            try_files $uri =404;
+            fastcgi_pass fastcgi_backend;
+            fastcgi_keep_conn on;
+            fastcgi_index index.php;
+            fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
+            include /nginx/conf/fastcgi_params;
+        }
+    }
+}

+ 41 - 0
frameworks/PHP/slim/deploy/nginx-fpm-7.conf

@@ -0,0 +1,41 @@
+user root;
+worker_processes 8;
+error_log stderr error;
+
+events {
+    worker_connections 1024;
+}
+
+http {
+    include /nginx/conf/mime.types;
+    default_type application/octet-stream;
+    access_log off;
+    sendfile on;
+    keepalive_timeout 65;
+
+    upstream fastcgi_backend {
+        server unix:/var/run/php/php7.2-fpm.sock;
+        keepalive 50;
+    }
+
+    server {
+        listen 8080;
+        server_name localhost;
+
+        root /slim/;
+        index index.php;
+
+        location / {
+            try_files $uri $uri/ /index.php?$uri&$args;
+        }
+
+        location ~ \.php$ {
+            try_files $uri =404;
+            fastcgi_pass fastcgi_backend;
+            fastcgi_keep_conn on;
+            fastcgi_index index.php;
+            fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
+            include /nginx/conf/fastcgi_params;
+        }
+    }
+}

+ 41 - 0
frameworks/PHP/slim/deploy/nginx-hhvm.conf

@@ -0,0 +1,41 @@
+user root;
+worker_processes 8;
+error_log stderr error;
+
+events {
+    worker_connections 1024;
+}
+
+http {
+    include /nginx/conf/mime.types;
+    default_type application/octet-stream;
+    access_log off;
+    sendfile on;
+    keepalive_timeout 65;
+
+    upstream fastcgi_backend {
+        server unix:/slim/hhvm.sock;
+        keepalive 50;
+    }
+
+    server {
+        listen 8080;
+        server_name localhost;
+
+        root /slim/;
+        index index.php;
+
+        location / {
+            try_files $uri $uri/ /index.php?$uri&$args;
+        }
+
+        location ~ \.php$ {
+            try_files $uri =404;
+            fastcgi_pass fastcgi_backend;
+            fastcgi_keep_conn on;
+            fastcgi_index index.php;
+            fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
+            include /nginx/conf/fastcgi_params;
+        }
+    }
+}

+ 0 - 133
frameworks/PHP/slim/deploy/nginx.conf

@@ -1,133 +0,0 @@
-#user  nobody;
-worker_processes  8;
-
-#error_log  logs/error.log;
-#error_log  logs/error.log  notice;
-#error_log  logs/error.log  info;
-error_log stderr error;
-
-#pid        logs/nginx.pid;
-
-
-events {
-    worker_connections  1024;
-}
-
-
-http {
-    include       /usr/local/nginx/conf/mime.types;
-    default_type  application/octet-stream;
-
-    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
-    #                  '$status $body_bytes_sent "$http_referer" '
-    #                  '"$http_user_agent" "$http_x_forwarded_for"';
-
-    #access_log  logs/access.log  main;
-    access_log off;
-
-    sendfile        on;
-    #tcp_nopush     on;
-
-    #keepalive_timeout  0;
-    keepalive_timeout  65;
-
-    #gzip  on;
-
-    upstream fastcgi_backend {
-        server 127.0.0.1:9001;
-        keepalive 50;
-    }
-
-    server {
-        listen       8080;
-        server_name  localhost;
-
-        #charset koi8-r;
-
-        #access_log  logs/host.access.log  main;
-
-        #location / {
-        #    root   html;
-        #    index  index.html index.htm;
-        #}
-
-        #error_page  404              /404.html;
-
-        # redirect server error pages to the static page /50x.html
-        #
-        #error_page   500 502 503 504  /50x.html;
-        #location = /50x.html {
-        #    root   html;
-        #}
-
-        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
-        #
-        #location ~ \.php$ {
-        #    proxy_pass   http://127.0.0.1;
-        #}
-
-        root /home/ubuntu/FrameworkBenchmarks/php-slim/;
-        index  index.php;
-
-        location / {
-            try_files $uri $uri/ /index.php?$uri&$args;
-        }
-
-        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
-        #
-        location ~ \.php$ {
-            try_files $uri =404;
-            fastcgi_pass   fastcgi_backend;
-            fastcgi_keep_conn on;
-            fastcgi_index  index.php;
-#            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
-            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
-            include        /usr/local/nginx/conf/fastcgi_params;
-        }
-
-        # deny access to .htaccess files, if Apache's document root
-        # concurs with nginx's one
-        #
-        #location ~ /\.ht {
-        #    deny  all;
-        #}
-    }
-
-
-    # another virtual host using mix of IP-, name-, and port-based configuration
-    #
-    #server {
-    #    listen       8000;
-    #    listen       somename:8080;
-    #    server_name  somename  alias  another.alias;
-
-    #    location / {
-    #        root   html;
-    #        index  index.html index.htm;
-    #    }
-    #}
-
-
-    # HTTPS server
-    #
-    #server {
-    #    listen       443;
-    #    server_name  localhost;
-
-    #    ssl                  on;
-    #    ssl_certificate      cert.pem;
-    #    ssl_certificate_key  cert.key;
-
-    #    ssl_session_timeout  5m;
-
-    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
-    #    ssl_ciphers  HIGH:!aNULL:!MD5;
-    #    ssl_prefer_server_ciphers   on;
-
-    #    location / {
-    #        root   html;
-    #        index  index.html index.htm;
-    #    }
-    #}
-
-}

+ 0 - 9
frameworks/PHP/slim/deploy/php-slim

@@ -1,9 +0,0 @@
-<VirtualHost *:8080>
-  Alias /php-slim/ "/home/ubuntu/FrameworkBenchmarks/php-slim/"
-  <Directory /home/ubuntu/FrameworkBenchmarks/php-slim/>
-          Options Indexes FollowSymLinks MultiViews
-          #AllowOverride None
-          Order allow,deny
-          allow from all
-  </Directory>
-</VirtualHost>

+ 1 - 1
frameworks/PHP/slim/index.php

@@ -5,7 +5,7 @@ require_once __DIR__.'/vendor/autoload.php';
 
 $app = new Slim\App(array(
     'db' => function ($c) {
-        $pdo = new PDO('mysql:host=localhost;dbname=hello_world;charset=utf8', 'benchmarkdbuser', 'benchmarkdbpass');
+        $pdo = new PDO('mysql:host=TFB-database;dbname=hello_world;charset=utf8', 'benchmarkdbuser', 'benchmarkdbpass');
         $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
         $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
 

+ 0 - 10
frameworks/PHP/slim/setup.sh

@@ -1,10 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql php7 nginx composer
-
-sed -i 's|localhost|'"${DBHOST}"'|g' index.php
-sed -i 's|root .*/FrameworkBenchmarks/php-slim| root '"${TROOT}"'|g' deploy/nginx.conf
-sed -i 's|/usr/local/nginx/|'"${IROOT}"'/nginx/|g' deploy/nginx.conf
-
-php-fpm --fpm-config $FWROOT/toolset/setup/linux/languages/php/php-fpm.conf -g $TROOT/deploy/php-fpm.pid
-nginx -c $TROOT/deploy/nginx.conf

+ 0 - 14
frameworks/PHP/slim/setup_hhvm.sh

@@ -1,14 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql php5 nginx composer hhvm
-
-sed -i 's|localhost|'"${DBHOST}"'|g' index.php
-sed -i 's|SourceRoot = .*/FrameworkBenchmarks/php-slim|SourceRoot = '"${TROOT}"'|g' deploy/config.hdf
-sed -i 's|Path = .*/.hhvm.hhbc|Path = '"${TROOT}"'/.hhvm.bbhc|g' deploy/config.hdf
-sed -i 's|PidFile = .*/hhvm.pid|PidFile = '"${TROOT}"'/hhvm.pid|g' deploy/config.hdf
-sed -i 's|File = .*/error.log|File = '"${TROOT}"'/error.log|g' deploy/config.hdf
-sed -i 's|root .*/FrameworkBenchmarks/php-slim| root '"${TROOT}"'|g' deploy/nginx.conf
-sed -i 's|/usr/local/nginx/|'"${IROOT}"'/nginx/|g' deploy/nginx.conf
-
-hhvm -m daemon --config $TROOT/deploy/config.hdf --user $(whoami)
-nginx -c $TROOT/deploy/nginx.conf

+ 0 - 10
frameworks/PHP/slim/setup_php5.sh

@@ -1,10 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql php5 nginx composer
-
-sed -i 's|localhost|'"${DBHOST}"'|g' index.php
-sed -i 's|root .*/FrameworkBenchmarks/php-slim| root '"${TROOT}"'|g' deploy/nginx.conf
-sed -i 's|/usr/local/nginx/|'"${IROOT}"'/nginx/|g' deploy/nginx.conf
-
-php-fpm --fpm-config $FWROOT/toolset/setup/linux/languages/php/php-fpm.conf -g $TROOT/deploy/php-fpm.pid
-nginx -c $TROOT/deploy/nginx.conf

+ 9 - 0
frameworks/PHP/slim/slim-hhvm.dockerfile

@@ -0,0 +1,9 @@
+FROM tfb/hhvm-php5:latest
+
+ADD ./ /slim
+WORKDIR /slim
+
+RUN composer.phar install --no-progress
+
+CMD hhvm -m daemon --config /slim/deploy/config.hdf && \
+    nginx -c /slim/deploy/nginx-hhvm.conf -g "daemon off;"

+ 9 - 0
frameworks/PHP/slim/slim-php5.dockerfile

@@ -0,0 +1,9 @@
+FROM tfb/php5:latest
+
+ADD ./ /slim
+WORKDIR /slim
+
+RUN composer.phar install --no-progress
+
+CMD service php5.6-fpm start && \
+    nginx -c /slim/deploy/nginx-fpm-5.conf -g "daemon off;"

+ 9 - 0
frameworks/PHP/slim/slim.dockerfile

@@ -0,0 +1,9 @@
+FROM tfb/php7:latest
+
+ADD ./ /slim
+WORKDIR /slim
+
+RUN composer.phar install --no-progress
+
+CMD service php7.2-fpm start && \
+    nginx -c /slim/deploy/nginx-fpm-7.conf -g "daemon off;"

+ 0 - 2
frameworks/PHP/yii2/.gitignore

@@ -1,2 +0,0 @@
-vendor
-deploy/php-fpm.pid

+ 0 - 2
frameworks/PHP/yii2/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "yii2",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "plaintext_url": "/site/plaintext",
       "json_url": "/site/json",
       "db_url": "/site/db",
@@ -26,7 +25,6 @@
       "versus": "php7"
     },
     "hhvm": {
-      "setup_file": "setup_hhvm",
       "plaintext_url": "/site/plaintext",
       "json_url": "/site/json",
       "db_url": "/site/db",

+ 6 - 5
frameworks/PHP/yii2/deploy/config.hdf

@@ -1,16 +1,17 @@
 # main configuration file
 
 # Application PID File
-PidFile = __TROOT__/hhvm.pid
+PidFile = /yii2/hhvm.pid
 
 # Server settings
 Server {
-  Port = 9001
+  FileSocket = /yii2/hhvm.sock
   Type = fastcgi
-  SourceRoot = __TROOT__/app
+  SourceRoot = /yii2
   DefaultDocument = index.php
   GzipCompressionLevel = 0
   EnableKeepAlive = true
+  AllowRunAsRoot = 1
 }
 
 # Disable logging completely
@@ -18,7 +19,7 @@ Log {
   UseLogFile = false
   UseSyslog = false
   Level = Error
-  #File = __TROOT__/error.log
+  #File = /yii2/error.log
 }
 
 # Enable jit for production mode
@@ -30,7 +31,7 @@ Eval {
 # Repo file
 Repo {
   Central {
-    Path = __TROOT__/.hhvm.bbhc
+    Path = /yii2/.hhvm.hhbc
   }
 }
 

+ 47 - 0
frameworks/PHP/yii2/deploy/nginx-fpm.conf

@@ -0,0 +1,47 @@
+user root;
+worker_processes auto;
+error_log stderr error;
+
+events {
+    worker_connections  16384;
+}
+
+http {
+    include /nginx/conf/mime.types;
+    default_type application/octet-stream;
+    access_log off;
+    server_tokens off;
+    sendfile on;
+    keepalive_timeout  65;
+
+    upstream fastcgi_backend {
+        server unix:/var/run/php/php7.2-fpm.sock;
+        keepalive 50;
+    }
+
+    server {
+        listen 8080;
+        server_name localhost;
+
+        root /yii2/app;
+        index index.php;
+
+        location / {
+            try_files $uri $uri/ /index.php?$args;
+        }
+
+        location ~ \.php$ {
+            fastcgi_split_path_info ^(.+\.php)(.*)$;
+            fastcgi_pass fastcgi_backend;
+            fastcgi_keep_conn on;
+            set $fsn /index.php;
+            if (-f $document_root$fastcgi_script_name){
+                set $fsn $fastcgi_script_name;
+            }
+            fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;
+            fastcgi_param  PATH_INFO        $fastcgi_path_info;
+            fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
+            include /nginx/conf/fastcgi_params;
+        }
+    }
+}

+ 47 - 0
frameworks/PHP/yii2/deploy/nginx-hhvm.conf

@@ -0,0 +1,47 @@
+user root;
+worker_processes auto;
+error_log stderr error;
+
+events {
+    worker_connections  16384;
+}
+
+http {
+    include /nginx/conf/mime.types;
+    default_type application/octet-stream;
+    access_log off;
+    server_tokens off;
+    sendfile on;
+    keepalive_timeout  65;
+
+    upstream fastcgi_backend {
+        server unix:/yii2/hhvm.sock;
+        keepalive 50;
+    }
+
+    server {
+        listen 8080;
+        server_name localhost;
+
+        root /yii2/app;
+        index index.php;
+
+        location / {
+            try_files $uri $uri/ /index.php?$args;
+        }
+
+        location ~ \.php$ {
+            fastcgi_split_path_info ^(.+\.php)(.*)$;
+            fastcgi_pass fastcgi_backend;
+            fastcgi_keep_conn on;
+            set $fsn /index.php;
+            if (-f $document_root$fastcgi_script_name){
+                set $fsn $fastcgi_script_name;
+            }
+            fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;
+            fastcgi_param  PATH_INFO        $fastcgi_path_info;
+            fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
+            include /nginx/conf/fastcgi_params;
+        }
+    }
+}

+ 0 - 66
frameworks/PHP/yii2/deploy/nginx.conf

@@ -1,66 +0,0 @@
-#user  nobody;
-worker_processes  auto;
-
-#error_log  logs/error.log;
-#error_log  logs/error.log  notice;
-#error_log  logs/error.log  info;
-error_log stderr error;
-
-#pid        logs/nginx.pid;
-
-
-events {
-    worker_connections  16384;
-}
-
-http {
-    include       /usr/local/nginx/conf/mime.types;
-    default_type  application/octet-stream;
-
-    #access_log  logs/access.log  main;
-    access_log off;
-    server_tokens off;
-
-    sendfile        on;
-    #tcp_nopush     on;
-
-    #keepalive_timeout  0;
-    keepalive_timeout  65;
-
-    #gzip  on;
-
-    upstream fastcgi_backend {
-        server 127.0.0.1:9001;
-        keepalive 50;
-    }
-
-    server {
-        listen       8080;
-        server_name  localhost;
-
-        root /home/tfb/FrameworkBenchmarks/php-yii2/app;
-        index  index.php;
-
-        location / {
-            try_files $uri $uri/ /index.php?$args;
-        }
-
-        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
-        #
-        location ~ \.php$ {
-            fastcgi_split_path_info  ^(.+\.php)(.*)$;
-            fastcgi_pass   fastcgi_backend;
-            fastcgi_keep_conn on;
-            set $fsn /index.php;
-            if (-f $document_root$fastcgi_script_name){
-                set $fsn $fastcgi_script_name;
-            }
-
-            fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;
-            #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
-            fastcgi_param  PATH_INFO        $fastcgi_path_info;
-            fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
-            include        /usr/local/nginx/conf/fastcgi_params;
-        }
-    }
-}

+ 0 - 9
frameworks/PHP/yii2/setup.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql php7 nginx composer
-
-sed -i 's|root .*/FrameworkBenchmarks/php-yii2|root '"${TROOT}"'|g' deploy/nginx.conf
-sed -i 's|/usr/local/nginx/|'"${IROOT}"'/nginx/|g' deploy/nginx.conf
-
-php-fpm --fpm-config $FWROOT/toolset/setup/linux/languages/php/php-fpm.conf -g $TROOT/deploy/php-fpm.pid
-nginx -c $TROOT/deploy/nginx.conf

+ 0 - 11
frameworks/PHP/yii2/setup_hhvm.sh

@@ -1,11 +0,0 @@
-#!/bin/bash
-
-fw_depends mysql php7 nginx composer hhvm
-
-sed -i 's|__TROOT__|'"${TROOT}"'|g' deploy/config.hdf
-
-sed -i 's|root .*/FrameworkBenchmarks/php-yii2|root '"${TROOT}"'|g' deploy/nginx.conf
-sed -i 's|/usr/local/nginx/|'"${IROOT}"'/nginx/|g' deploy/nginx.conf
-
-hhvm -m daemon --config $TROOT/deploy/config.hdf --user $(whoami)
-nginx -c $TROOT/deploy/nginx.conf

+ 9 - 0
frameworks/PHP/yii2/yii2-hhvm.dockerfile

@@ -0,0 +1,9 @@
+FROM tfb/hhvm-php7:latest
+
+ADD ./ /yii2
+WORKDIR /yii2
+
+RUN composer.phar install --no-progress
+
+CMD hhvm -m daemon --config /yii2/deploy/config.hdf && \
+    nginx -c /yii2/deploy/nginx-hhvm.conf -g "daemon off;"

+ 9 - 0
frameworks/PHP/yii2/yii2.dockerfile

@@ -0,0 +1,9 @@
+FROM tfb/php7:latest
+
+ADD ./ /yii2
+WORKDIR /yii2
+
+RUN composer.phar install --no-progress
+
+CMD service php7.2-fpm start && \
+    nginx -c /yii2/deploy/nginx-fpm.conf -g "daemon off;"

+ 7 - 0
toolset/setup/docker/languages/hhvm-php5.dockerfile

@@ -0,0 +1,7 @@
+FROM tfb/php5:latest
+
+RUN apt-get install -y apt-transport-https
+RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xB4112585D386EB94
+RUN add-apt-repository https://dl.hhvm.com/ubuntu
+RUN apt-get update
+RUN apt-get install -y hhvm

+ 7 - 0
toolset/setup/docker/languages/hhvm-php7.dockerfile

@@ -0,0 +1,7 @@
+FROM tfb/php7:latest
+
+RUN apt-get install -y apt-transport-https
+RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xB4112585D386EB94
+RUN add-apt-repository https://dl.hhvm.com/ubuntu
+RUN apt-get update
+RUN apt-get install -y hhvm