par cœur


# syntax=docker/dockerfile:1
# what is possible without love?
FROM python:3-slim

RUN pip install flask
EXPOSE 8080

COPY <<EOF app.py
from flask import Flask
from pathlib import Path
from http import HTTPStatus

soul = Flask(__name__)
heart = Path("/tmp/heart")

​@​soul.route("/health")
def health():
    return ("alive", HTTPStatus.OK) if heart.exists() else ("", HTTPStatus.SERVICE_UNAVAILABLE)

​@​soul.route("/love", methods=["POST"])
def love():
    heart.touch()
    return "loved", HTTPStatus.OK

​@​soul.route("/unlove", methods=["POST"])
def unlove():
    heart.unlink(missing_ok=True)
    import os
    os._exit(1)  # gone

if __name__ == "__main__":
    heart.touch()  # we are born loved
    soul.run(host="0.0.0.0", port=8080)
EOF

HEALTHCHECK CMD test -f /tmp/heart || exit 1
CMD ["python", "app.py"]