Browse Source

Lua/lapis for docker (#3347)

Nate 7 years ago
parent
commit
455afe043b

+ 1 - 1
.travis.yml

@@ -109,7 +109,7 @@ env:
     # - "TESTDIR=Kotlin/http4k"
     # - "TESTDIR=Kotlin/http4k"
     # - "TESTDIR=Kotlin/ktor"
     # - "TESTDIR=Kotlin/ktor"
     # - "TESTDIR=Kotlin/pronghorn"
     # - "TESTDIR=Kotlin/pronghorn"
-    # - "TESTDIR=Lua/lapis"
+     - "TESTDIR=Lua/lapis"
     # - "TESTDIR=Lua/octopus"
     # - "TESTDIR=Lua/octopus"
     # - "TESTDIR=Lua/openresty"
     # - "TESTDIR=Lua/openresty"
     # - "TESTDIR=Nim/jester"
     # - "TESTDIR=Nim/jester"

+ 0 - 1
frameworks/Lua/lapis/benchmark_config.json

@@ -2,7 +2,6 @@
   "framework": "lapis",
   "framework": "lapis",
   "tests": [{
   "tests": [{
     "default": {
     "default": {
-      "setup_file": "setup",
       "json_url": "/",
       "json_url": "/",
       "db_url": "/db",
       "db_url": "/db",
       "query_url": "/queries?queries=",
       "query_url": "/queries?queries=",

+ 8 - 0
frameworks/Lua/lapis/lapis.dockerfile

@@ -0,0 +1,8 @@
+FROM tfb/openresty-server:latest
+
+COPY ./ ./
+
+RUN luarocks install lua-resty-template
+RUN luarocks install lapis
+
+CMD echo -e "export DBHOST=`getent hosts TFB-database | awk '{ print $1 }'`"; lapis server production

+ 0 - 6
frameworks/Lua/lapis/setup.sh

@@ -1,6 +0,0 @@
-#!/bin/bash
-
-fw_depends postgresql lua luarocks openresty
-
-luarocks install lapis
-lapis server production &

+ 25 - 0
toolset/setup/linux/docker/languages/lua.dockerfile

@@ -0,0 +1,25 @@
+FROM tfb/base:latest
+
+ENV LUA_VERSION="5.1"
+ENV LUA_MICRO="5"
+
+RUN apt install -yqq libreadline-dev lib32ncurses5-dev
+
+RUN wget https://github.com/LuaDist/lua/archive/$LUA_VERSION.$LUA_MICRO.tar.gz
+RUN tar xvf $LUA_VERSION.$LUA_MICRO.tar.gz
+
+ENV LUA_HOME=/lua-$LUA_VERSION.$LUA_MICRO
+
+RUN cd $LUA_HOME && \
+    cp src/luaconf.h.orig src/luaconf.h && \
+    make linux && \
+    cd src && \
+    mkdir ../bin ../include ../lib && \
+    install -p -m 0755 lua luac ../bin && \
+    install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h ../include && \
+    install -p -m 0644 liblua.a ../lib
+
+ENV LUA=/lua${LUA_VERSION}.${LUA_MICRO}
+ENV PATH=${LUA_HOME}/bin:${PATH}
+ENV LUA_PATH="./?.lua;./?.lc;$LUA_HOME/share/lua/5.1/?/init.lua;$LUA_HOME/share/lua/5.1/?.lua;$LUA_HOME/lib/lua/5.1/?/init.lua;$LUA_HOME/lib/lua/5.1/?.lua"
+ENV LUA_CPATH="./?.lua;./?.lc;$LUA_HOME/share/lua/5.1/?/init.so;$LUA_HOME/share/lua/5.1/?.so;$LUA_HOME/lib/lua/5.1/?/init.so;$LUA_HOME/lib/lua/5.1/?.so"

+ 11 - 0
toolset/setup/linux/docker/systools/luarocks.dockerfile

@@ -0,0 +1,11 @@
+FROM tfb/lua:latest
+
+ENV LUAROCKS_VERSION="2.2.1"
+ENV LUAROCKS=/luarocks-$LUAROCKS_VERSION
+
+RUN wget http://luarocks.org/releases/luarocks-$LUAROCKS_VERSION.tar.gz
+RUN tar xvf luarocks-$LUAROCKS_VERSION.tar.gz
+
+RUN cd $LUAROCKS && \
+    ./configure --prefix=$LUA_HOME --with-lua=$LUA_HOME && \
+    make --quiet bootstrap

+ 18 - 0
toolset/setup/linux/docker/webservers/openresty-server.dockerfile

@@ -0,0 +1,18 @@
+FROM tfb/luarocks:latest
+
+RUN apt install -yqq libpq-dev libpcre3 libpcre3-dev
+
+ENV OPENRESTY_VERSION="1.11.2.1"
+ENV OPENRESTY=/openresty
+ENV OPENRESTY_HOME=$OPENRESTY-$OPENRESTY_VERSION
+
+RUN wget http://openresty.org/download/openresty-$OPENRESTY_VERSION.tar.gz
+RUN tar xvf openresty-$OPENRESTY_VERSION.tar.gz
+
+RUN cd openresty-$OPENRESTY_VERSION && \
+    ./configure --with-http_postgres_module --prefix=$OPENRESTY_HOME --with-luajit-xcflags="-DLUAJIT_NUMMODE=2 -O3" --with-cc-opt="-O3" -j4 && \
+    make -j4 --quiet && \
+    make --quiet install
+
+ENV OPENRESTY_HOME=${OPENRESTY_HOME}
+ENV PATH=${OPENRESTY_HOME}/nginx/sbin:${PATH}

+ 0 - 33
toolset/setup/linux/languages/lua.sh

@@ -1,33 +0,0 @@
-#!/bin/bash
-
-fw_installed lua && return 0
-
-LUA_VERSION="5.1"
-LUA_MICRO="5"
-
-fw_get -O https://github.com/LuaDist/lua/archive/$LUA_VERSION.$LUA_MICRO.tar.gz
-fw_untar $LUA_VERSION.$LUA_MICRO.tar.gz
-
-LUA_HOME=$IROOT/lua-$LUA_VERSION.$LUA_MICRO
-
-cd $LUA_HOME
-cp src/luaconf.h.orig src/luaconf.h
-make linux
-cd src
-mkdir ../bin ../include ../lib
-install -p -m 0755 lua luac ../bin
-install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h ../include
-install -p -m 0644 liblua.a ../lib
-
-echo "export LUA_HOME=${LUA_HOME}" > $IROOT/lua.installed
-echo "export LUA_VERSION=${LUA_VERSION}" >> $IROOT/lua.installed
-echo "export LUA_MICRO=${LUA_MICRO}" >> $IROOT/lua.installed
-echo -e "export LUA=${IROOT}/lua\$LUA_VERSION.\$LUA_MICRO" >> $IROOT/lua.installed
-echo -e "export PATH=\$LUA_HOME/bin:\$PATH" >> $IROOT/lua.installed
-# TODO: This feels very hackish
-echo -e 'export LUA_PATH="./?.lua;./?.lc;$LUA_HOME/share/lua/5.1/?/init.lua;$LUA_HOME/share/lua/5.1/?.lua;$LUA_HOME/lib/lua/5.1/?/init.lua;$LUA_HOME/lib/lua/5.1/?.lua"' >> $IROOT/lua.installed
-echo -e 'export LUA_CPATH="./?.lua;./?.lc;$LUA_HOME/share/lua/5.1/?/init.so;$LUA_HOME/share/lua/5.1/?.so;$LUA_HOME/lib/lua/5.1/?/init.so;$LUA_HOME/lib/lua/5.1/?.so"' >> $IROOT/lua.installed
-# This helps the fact that Lua/nginx cannot resolve hostnames from /etc/hosts
-echo -e "export DBHOST=`getent hosts TFB-database | awk '{ print $1 }'`" >> $IROOT/lua.installed
-
-source $IROOT/lua.installed

+ 0 - 19
toolset/setup/linux/systools/luarocks.sh

@@ -1,19 +0,0 @@
-#!/bin/bash
-
-fw_depends lua
-
-fw_installed luarocks && return 0
-
-LUAROCKS_VERSION="2.2.1"
-LUAROCKS=$IROOT/luarocks-$LUAROCKS_VERSION
-
-fw_get -O http://luarocks.org/releases/luarocks-$LUAROCKS_VERSION.tar.gz
-fw_untar luarocks-$LUAROCKS_VERSION.tar.gz
-
-cd $LUAROCKS
-./configure --prefix=$LUA_HOME --with-lua=$LUA_HOME
-make --quiet bootstrap
-
-echo "" > $IROOT/luarocks.installed
-
-source $IROOT/luarocks.installed

+ 0 - 22
toolset/setup/linux/webservers/openresty.sh

@@ -1,22 +0,0 @@
-#!/bin/bash
-
-fw_depends lua
-
-fw_installed openresty && return 0
-
-OPENRESTY_VERSION="1.11.2.1"
-OPENRESTY=$IROOT/openresty
-OPENRESTY_HOME=$OPENRESTY-$OPENRESTY_VERSION
-
-fw_get -O http://openresty.org/download/openresty-$OPENRESTY_VERSION.tar.gz
-fw_untar openresty-$OPENRESTY_VERSION.tar.gz
-
-cd openresty-$OPENRESTY_VERSION
-./configure --with-http_postgres_module --prefix=$OPENRESTY_HOME --with-luajit-xcflags="-DLUAJIT_NUMMODE=2 -O3" --with-cc-opt="-O3" -j4
-make -j4 --quiet
-make --quiet install
-
-echo "export OPENRESTY_HOME=${OPENRESTY_HOME}" > $IROOT/openresty.installed
-echo -e "export PATH=\$OPENRESTY_HOME/nginx/sbin:\$PATH" >> $IROOT/openresty.installed
-
-source $IROOT/openresty.installed