Containerized

master
Brian Sakal 3 years ago
parent 10d25ced08
commit e88ee5fe74

@ -0,0 +1,37 @@
FROM docker.io/library/alpine:3.14
# we need bash for luaver:
RUN apk add --no-cache bash && echo "" > /root/.ash_history
RUN sed -i -e "s/bin\/ash/bin\/bash/" /etc/passwd
ENV LC_ALL=en_US.UTF-8
# requirements for various luarocks packages:
RUN apk add --no-cache build-base bsd-compat-headers m4 openssl-dev libmagic libuuid lmdb lmdb-dev git readline-dev autoconf automake libtool zlib-dev vips ncurses wget unzip openssl util-linux-dev
# install luaver and install luarocks packages:
RUN ln -s /usr/lib/libvips.so.42 /usr/lib/libvips.so \
&& git config --global url."https://".insteadOf git:// \
&& git clone https://git.sakal.us/brian/luaver.git ~/.luaver
RUN ["bash", "-c", "\
{ . ~/.luaver/luaver; } \
; { yes | luaver install 5.1.5; } \
&& { yes | luaver install-luajit 2.0.5; } \
&& luaver use 5.1.5 && luaver set-default 5.1.5 \
&& luaver use-luajit 2.0.5 && luaver set-default-luajit 2.0.5 \
&& { yes | luaver install-luarocks 3.8.0; } \
&& luaver use-luarocks 3.8.0 && luaver set-default-luarocks 3.8.0 \
&& luarocks install luarocks-fetch-gitrec \
&& luarocks install compat53 \
&& luarocks install cqueues \
&& luarocks install lpeg \
&& luarocks install lpeg_patterns \
&& luarocks install luafilesystem \
&& luarocks install http \
&& luarocks install lua-cjson \
&& luarocks install mimetypes \
&& luarocks install lrandom \
&& luarocks install luaprompt \
&& luarocks install magic \
&& luarocks install lightningmdb \
&& luarocks install lua_uuid \
&& luarocks install lua-vips"]
WORKDIR /app/server
EXPOSE 8000
CMD ["bash", "-c", "{ . ~/.luaver/luaver; } ; luajit ./server.lua"]

@ -1,56 +1,25 @@
# piazzaoptical.com # piazzaoptical.com
Code for what once was piazzaoptical.com. Backend and frontend. Code for what once was piazzaoptical.com. Backend and frontend. Unfortunately, I lost the code of the final product; this is the code of a very early stage, and errors abound.
## To use: ## To use:
```bash First clone this repo, and the `bitser` repo that's included as a submodule:
podman run -it --rm -p 8000:8000 docker.io/library/alpine:3.14 # v3.15 can't seem to work with package "bsd-compat-headers"
```
Then within the container:
```bash ```bash
apk add --no-cache build-base bsd-compat-headers m4 openssl-dev libmagic libuuid lmdb lmdb-dev git readline-dev autoconf automake libtool zlib-dev vips ncurses wget unzip openssl util-linux-dev bash git clone https://git.sakal.us/brian/piazzaoptical.com
ln -s /usr/lib/libvips.so.42 /usr/lib/libvips.so cd piazzaoptical.com
git config --global url."https://".insteadOf git:// # for luarocks pulling from github; it uses unencrypted git submodule update --init --recursive # for bitser; installed as git submodule
git clone https://git.sakal.us/brian/luaver.git ~/.luaver
bash
``` ```
Then in `bash` shell (not the default `ash`): Build the podman image based on the Containerfile:
```bash ```bash
. ~/.luaver/luaver podman build --tag piazzaoptical.com .
yes | luaver install 5.1.5
yes | luaver install-luajit 2.0.5
luaver use 5.1.5
luaver use-luajit 2.0.5
yes | luaver install-luarocks 3.8.0
luaver use-luarocks 3.8.0
luarocks install luarocks-fetch-gitrec # for magic
luarocks install compat53
luarocks install cqueues
luarocks install lpeg
luarocks install lpeg_patterns
luarocks install luafilesystem
luarocks install http
luarocks install lua-cjson
luarocks install mimetypes
luarocks install lrandom
luarocks install luaprompt
luarocks install magic
luarocks install lightningmdb
luarocks install lua_uuid
luarocks install lua-vips
``` ```
Finally: Finally, run a container based on this image (I chose to expose the container through port 8004 on the host):
```bash ```bash
git clone https://git.sakal.us/brian/piazzaoptical.com podman run -it --rm -p 8004:8000 -v ${PWD}:/app localhost/piazzaoptical.com
cd piazzaoptical.com
git submodule update --init --recursive # for bitser; installed as git submodule
cd server
luajit ./server.lua
``` ```

@ -265,7 +265,8 @@ local function reply(myserver, stream)
end end
local myserver = assert(http_server.listen { local myserver = assert(http_server.listen {
host = "localhost"; --host = "localhost";
host = "0.0.0.0";
port = port; port = port;
max_concurrent = 100; max_concurrent = 100;
onstream = reply; onstream = reply;

Loading…
Cancel
Save