From 3e6bf906ee101fbba14dc5a5fd92d64b869a6185 Mon Sep 17 00:00:00 2001 From: Alasdair Macmillan Date: Sat, 29 Aug 2026 13:08:23 +0100 Subject: [PATCH 1/4] Strip down unused data in Dockerfile --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c71afb4..4f06370 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,4 @@ -FROM python:3 -RUN apt-get update +FROM python:3-slim RUN pip3 install nltk RUN python3 -c "import nltk; nltk.download('words'); nltk.download('stopwords')" WORKDIR /var/www From eac12fff21f7b887c1e599c062578f4105546db6 Mon Sep 17 00:00:00 2001 From: Alasdair Macmillan Date: Sat, 29 Aug 2026 13:22:56 +0100 Subject: [PATCH 2/4] Add environment override for seed variable #1 --- src/config.py | 3 +++ src/server.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/config.py b/src/config.py index c95f444..951aff0 100644 --- a/src/config.py +++ b/src/config.py @@ -12,6 +12,9 @@ def port(self): def random_seed(self): return self.opts["random-seed"] + def random_seed_override(self, new_seed): + self.opts["random-seed"] = new_seed + @property def spacing(self): return self.opts["spacing-characters"] diff --git a/src/server.py b/src/server.py index 7b30946..d055b51 100644 --- a/src/server.py +++ b/src/server.py @@ -1,6 +1,7 @@ from http.server import HTTPServer from handler import Handler from config import Config +import os def run(config:Config): print("Listening on port {}".format(config.port)) @@ -12,6 +13,8 @@ def run(config:Config): def main(): config = Config() + seed = os.environ.get("PYISON_SEED", config.random_seed) + config.random_seed_override(seed) if config.random_seed == 0: print("Please update the random seed value in the config file!") run(config) From 330921dbf7c8069b0e65243362ef497df0ddeec3 Mon Sep 17 00:00:00 2001 From: Alasdair Macmillan Date: Sat, 29 Aug 2026 13:26:32 +0100 Subject: [PATCH 3/4] Use non-privileged port by default --- config/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.json b/config/config.json index 11d4d8d..4c25db5 100644 --- a/config/config.json +++ b/config/config.json @@ -1,5 +1,5 @@ { - "port": 80, + "port": 8080, "random-seed": 0, "document-root": "/", From 1eb11dcd98a783814b39997fa1a66f6c9c68d519 Mon Sep 17 00:00:00 2001 From: Alasdair Macmillan Date: Sat, 29 Aug 2026 14:04:16 +0100 Subject: [PATCH 4/4] Add Dockerfile for alpine version with PyInstaller (~45Mb) --- Dockerfile-alpine | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Dockerfile-alpine diff --git a/Dockerfile-alpine b/Dockerfile-alpine new file mode 100644 index 0000000..e9285ff --- /dev/null +++ b/Dockerfile-alpine @@ -0,0 +1,18 @@ +FROM alpine:3.23.5 as builder + +RUN apk --no-cache add binutils python3 git py3-pip +RUN python -m pip install --break-system-packages nltk pyinstaller==6.18.0 + +RUN python3 -c "import nltk; nltk.download('words'); nltk.download('stopwords')" +COPY / ./ +RUN python -m PyInstaller src/server.py + +FROM alpine:3.23.5 + +WORKDIR /var/www +COPY --from=builder dist/server/_internal ./_internal +COPY --from=builder dist/server/server . +COPY --from=builder assets assets +COPY --from=builder config config + +CMD ["./server"]