From ca5959d81dae03b6ee1bd99973d41f4d312fcbc0 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Thu, 15 Feb 2024 08:56:48 +0800 Subject: [PATCH] added docker image --- build_docker_image.sh | 10 ++++++++++ docker/Dockerfile | 18 ++++++++++++++++++ docker/uwsgi.ini | 8 ++++++++ pyproject.toml | 2 ++ {sspoc => src/sspoc}/__init__.py | 0 {sspoc => src/sspoc}/server.py | 0 {sspoc => src/sspoc}/static/index.html | 0 {sspoc => src/sspoc}/static/js/sspoc.js | 0 8 files changed, 38 insertions(+) create mode 100755 build_docker_image.sh create mode 100644 docker/Dockerfile create mode 100644 docker/uwsgi.ini rename {sspoc => src/sspoc}/__init__.py (100%) rename {sspoc => src/sspoc}/server.py (100%) rename {sspoc => src/sspoc}/static/index.html (100%) rename {sspoc => src/sspoc}/static/js/sspoc.js (100%) diff --git a/build_docker_image.sh b/build_docker_image.sh new file mode 100755 index 0000000..3f382d9 --- /dev/null +++ b/build_docker_image.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e + +venv/bin/python -m build +mkdir -p docker/build +cp dist/sspoc-*.whl docker/build/ +cp docker/Dockerfile docker/build/Dockerfile +cp docker/uwsgi.ini docker/build/uwsgi.ini + +docker build docker/build --tag sspoc:latest \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..cbdac91 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,18 @@ +FROM alpine:latest +MAINTAINER Oggioni Walter +RUN apk update +RUN apk add python3 py3-pip uwsgi uwsgi-python3 graphviz uwsgi-gevent3 +RUN mkdir /srv/http +RUN mkdir /var/sspoc +WORKDIR /var/sspoc +RUN python -m venv venv +ADD uwsgi.ini /var/sspoc +ADD sspoc-*.whl / +RUN venv/bin/pip install /sspoc-*.whl && rm /sspoc-*.whl +VOLUME /srv/http +WORKDIR /srv/http +ENTRYPOINT ["uwsgi"] +EXPOSE 1910/tcp +EXPOSE 1910/udp +USER nobody +CMD [ "--ini", "/var/sspoc/uwsgi.ini" ] \ No newline at end of file diff --git a/docker/uwsgi.ini b/docker/uwsgi.ini new file mode 100644 index 0000000..bb65467 --- /dev/null +++ b/docker/uwsgi.ini @@ -0,0 +1,8 @@ +[uwsgi] +#logformat = "%(proto) - %(method) %(uri) %(status) %(addr) +need-plugin=/usr/lib/uwsgi/python_plugin.so +need-plugin=/usr/lib/uwsgi/gevent3_plugin.so +socket = :1910 +module = sspoc.server:app +virtualenv = /var/sspoc/venv +gevent = 1000 \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 5d6e8ad..a8d7d4d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,6 +17,8 @@ classifiers = [ "Operating System :: OS Independent", ] dependencies = [ + "gevent", + "greenlet", "flask >= 3.0", 'cryptography>=42.0.0', ] diff --git a/sspoc/__init__.py b/src/sspoc/__init__.py similarity index 100% rename from sspoc/__init__.py rename to src/sspoc/__init__.py diff --git a/sspoc/server.py b/src/sspoc/server.py similarity index 100% rename from sspoc/server.py rename to src/sspoc/server.py diff --git a/sspoc/static/index.html b/src/sspoc/static/index.html similarity index 100% rename from sspoc/static/index.html rename to src/sspoc/static/index.html diff --git a/sspoc/static/js/sspoc.js b/src/sspoc/static/js/sspoc.js similarity index 100% rename from sspoc/static/js/sspoc.js rename to src/sspoc/static/js/sspoc.js