Compare commits
2 Commits
a6b8cf31fe
...
fc2019680a
| Author | SHA1 | Date | |
|---|---|---|---|
| fc2019680a | |||
| 2d97f02929 |
17
Dockerfile
17
Dockerfile
@@ -1,32 +1,31 @@
|
||||
FROM alpine AS build
|
||||
|
||||
RUN apk add --no-cache lua5.4-dev lua5.4-luv make gcc pkgconf util-linux-misc
|
||||
RUN apk add --no-cache lua5.4-dev lua5.4-luv build-base pkgconf util-linux-misc
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
COPY src ./src/
|
||||
COPY lib ./lib/
|
||||
COPY Makefile ./Makefile
|
||||
COPY deps ./deps
|
||||
|
||||
RUN ln -s /usr/lib/liblua-5.4.so.0 /usr/lib/liblua.so.5.4
|
||||
RUN make
|
||||
RUN make LUA=lua5.4
|
||||
|
||||
FROM alpine
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
VOLUME /plugins
|
||||
VOLUME /views
|
||||
VOLUME /static
|
||||
VOLUME /config
|
||||
VOLUME /data
|
||||
|
||||
STOPSIGNAL SIGINT
|
||||
|
||||
HEALTHCHECK --interval=30s --start-period=1s CMD curl localhost:8080/.well-known/keepalive | grep "OK"
|
||||
ENTRYPOINT ./bin/website
|
||||
|
||||
WORKDIR /app
|
||||
WORKDIR /
|
||||
|
||||
RUN apk add --no-cache lua5.4 lua5.4-luv
|
||||
|
||||
COPY --from=build ./bin/website .
|
||||
COPY --from=build /build/bin/website .
|
||||
|
||||
CMD [ "./website", "./data/config.lua" ]
|
||||
|
||||
8
Makefile
8
Makefile
@@ -42,15 +42,15 @@ compile_flags.txt:
|
||||
printf -- '$(foreach v,$(CCARGS) $(LDARGS),\n$v)' > compile_flags.txt
|
||||
|
||||
$(OUTPUT): $(LIBS) $(MKLUA_OUT) $(SOURCES) | $(dir $(OUTPUT))
|
||||
$(CC) $(CCARGS) $(LDARGS) $^ -o $@
|
||||
$(CC) $(CCARGS) $^ $(LDARGS) -o $@
|
||||
|
||||
$(MKLUA_OUT): $(DEPS) | $(dir $(MKLUA_OUT)) $(MKLUA)
|
||||
$(MKLUA) $(MKLUA_FLAGS) $(MKLUA_ENTRY) -o $@
|
||||
|
||||
deps/mklua/mklua:
|
||||
|
||||
$(MKLUA):
|
||||
deps/mklua/Makefile:
|
||||
git submodule update --init deps/mklua
|
||||
|
||||
$(MKLUA): deps/mklua/Makefile
|
||||
make -C deps/mklua
|
||||
%/:
|
||||
mkdir -p $@
|
||||
|
||||
2
deps/mklua
vendored
2
deps/mklua
vendored
Submodule deps/mklua updated: 318928ddbc...0c05556eb1
12
src/sync/sig.lua
Normal file
12
src/sync/sig.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
--- @param sig uv.aliases.signals
|
||||
--- @param cb fun(num: uv.aliases.signals): false?
|
||||
return function (sig, cb)
|
||||
local self = assert(uv.new_signal());
|
||||
|
||||
uv.signal_start(self, sig, function (num)
|
||||
if cb(num) == false then
|
||||
uv.signal_stop(self);
|
||||
uv.close(self);
|
||||
end
|
||||
end);
|
||||
end
|
||||
@@ -2,6 +2,7 @@ require "utils.printing";
|
||||
require "template";
|
||||
require "plugin.breadcrumbs";
|
||||
require "plugin.navbar";
|
||||
local sig = require "sync.sig"
|
||||
|
||||
local sync = require "sync";
|
||||
local tcp = require "sync.tcp";
|
||||
@@ -30,8 +31,18 @@ end
|
||||
|
||||
return require "sync.entry" (function (...)
|
||||
-- Why a bad pipe manages to topple a whole process in unix is beyond me
|
||||
local sigpipe = assert(uv.new_signal());
|
||||
uv.signal_start(sigpipe, "sigpipe", function () end);
|
||||
sig("sigpipe", function (num) end);
|
||||
sig("sigint", function (num)
|
||||
print "Gracefully exiting...";
|
||||
uv.stop();
|
||||
|
||||
sig("sigint", function (num)
|
||||
print "SIGINT repeated, forcefully exiting...";
|
||||
os.exit(0);
|
||||
end);
|
||||
|
||||
return false;
|
||||
end);
|
||||
|
||||
local conf_file = ...;
|
||||
local config = assert(loadfile(conf_file))();
|
||||
|
||||
Reference in New Issue
Block a user