From c46c2c512626c860218c2ac1c1d71b8bad13b189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Engl=C3=B6f=20Ytterstr=C3=B6m?= Date: Fri, 1 Dec 2023 10:36:02 +0100 Subject: [PATCH] Run code in container --- leaderboard/.dockerignore | 8 ++++++++ leaderboard/Containerfile | 19 +++++++++++++++++++ leaderboard/Makefile | 13 +++++++++++++ leaderboard/README | 4 ---- leaderboard/app.py | 4 ++-- 5 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 leaderboard/.dockerignore create mode 100644 leaderboard/Containerfile create mode 100644 leaderboard/Makefile delete mode 100644 leaderboard/README diff --git a/leaderboard/.dockerignore b/leaderboard/.dockerignore new file mode 100644 index 0000000..bd71c62 --- /dev/null +++ b/leaderboard/.dockerignore @@ -0,0 +1,8 @@ +.git +.gitignore +__pycache__ +README +Makefile +Dockerfile +venv +Containerfile diff --git a/leaderboard/Containerfile b/leaderboard/Containerfile new file mode 100644 index 0000000..c05837c --- /dev/null +++ b/leaderboard/Containerfile @@ -0,0 +1,19 @@ +FROM python:3-alpine3.20 AS base + +WORKDIR /app + +FROM base AS reqs +RUN pip install flask==3.1.0 +RUN pip install waitress==3.0.2 + +FROM reqs AS app +RUN mkdir /app/templates +COPY *.jinja2 /app/templates +COPY app.py app.py + +ENV AOC_TOKEN= +EXPOSE 8080 + +VOLUME images + +ENTRYPOINT waitress-serve app:app diff --git a/leaderboard/Makefile b/leaderboard/Makefile new file mode 100644 index 0000000..abc6c86 --- /dev/null +++ b/leaderboard/Makefile @@ -0,0 +1,13 @@ +install: + virtualenv venv + . venv/bin/activate + pip install -r requirements.txt + +waitress: + waitress-serve app:app + +flask: + FLASK_APP=app flask run --debug + +build: + buildah build . diff --git a/leaderboard/README b/leaderboard/README deleted file mode 100644 index 66669d9..0000000 --- a/leaderboard/README +++ /dev/null @@ -1,4 +0,0 @@ -pip install flask -mkdir templates -mv main.jinja2 templates/ -AOC_TOKEN= FLASK_APP=app flask run diff --git a/leaderboard/app.py b/leaderboard/app.py index 0a4407d..54f4aaa 100644 --- a/leaderboard/app.py +++ b/leaderboard/app.py @@ -32,9 +32,9 @@ def get_data(token, calendar, leaderboard, dummy_data=True): def hello_world(): calendar = request.args.get("calendar", datetime.now().year) leaderboard = request.args.get("board") - token = request.args.get("token") + token = os.environ.get("AOC_TOKEN") if not token: - return "Missing token get parameter. Use the session cookie on adventofcode.com" + return "Missing AOC_TOKEN environment variable. Use the session cookie on adventofcode.com" if not leaderboard: return "Missing board get parameter." data = get_data(token, calendar, leaderboard, False)