From 3c07be0160946c03be0e6985c85eb96ebe5b5837 Mon Sep 17 00:00:00 2001 From: Shirkanesi Date: Tue, 13 Feb 2024 10:41:32 +0100 Subject: [PATCH 1/2] ADD Dockerfile for portability --- Dockerfile | 25 +++++++++++++++++++++++++ docker-compose.yml | 19 +++++++++++++++++++ jon/__init__.py | 1 + 3 files changed, 45 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6989b82 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +FROM debian:latest as builder + +RUN apt-get update +RUN apt-get upgrade -y +RUN apt-get install -y elm-compiler make ca-certificates + +COPY . /app +WORKDIR /app +RUN rm -rf .venv venv + +RUN make frontend + + +FROM python:3.11-alpine as runner +COPY --from=builder /app /app + +WORKDIR /app +RUN pip install -r requirements.txt +RUN pip install gunicorn + +EXPOSE 5000 +ENV JON_DB_CONNECTION_STRING="host=fsmi-db.fsmi.org dbname=garfield" +ENV JON_SECRET_KEY="changeme" + +CMD ["sh", "-c", "gunicorn -b '0.0.0.0:5000' --chdir /app 'jon:create_app()'"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..cba3f59 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +--- +version: '3.7' + +services: + jon: + container_name: jon + build: . + ports: + - "5000:5000" + volumes: + - ~/.pgpass:/root/.pgpass:ro + dns: + - 1.1.1.1 + - 8.8.8.8 + network_mode: bridge + environment: + # If your local user is different from your fsmi user, change $USER here! + - JON_DB_CONNECTION_STRING="host=fsmi-db.fsmi.org dbname=garfield user=$USER" + - JON_SECRET_KEY="changemetosomethingsuperrandomandsecure" diff --git a/jon/__init__.py b/jon/__init__.py index c375ac4..3ddf415 100644 --- a/jon/__init__.py +++ b/jon/__init__.py @@ -20,6 +20,7 @@ def create_app(): # You don't need a config.json. If you don't provide one, default-config.json # is used. app.config.from_file("config.json", load=json.load, silent=True) + app.config.from_prefixed_env(prefix="JON") db.init_app(app) auth.init_app(app) From a7461f6e2cdb81694d233c4aefd0e61f3a1c4ebc Mon Sep 17 00:00:00 2001 From: Shirkanesi Date: Wed, 14 Feb 2024 11:28:32 +0100 Subject: [PATCH 2/2] ADD information about docker in README --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index f0d15f9..640a4b7 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,20 @@ flask --app jon run --debug `--debug` restarts the server when a source file changes. +## Running with docker +When you prefer running the application using docker you can just use +``` +docker compose up +``` + +In case your local username does not line up with your FSMI-username, you need to specify your FSMI-username +using `USER=`, e.g.: +``` +USER=shirkanesi docker compose up +``` + +This can also be persisted by following the instructions in the docker-compose.yml + ## fsmi-db forward ```