gerboweb: Add prod container build

wip
jaseg 2022-07-05 22:31:09 +02:00
rodzic 3ba932209f
commit 00de98d5e3
5 zmienionych plików z 36 dodań i 1 usunięć

Wyświetl plik

@ -0,0 +1,18 @@
FROM docker.io/archlinux:latest
MAINTAINER gerbolyze@jaseg.de
RUN pacman --noconfirm -Syu
RUN pacman --noconfirm -Sy pugixml opencv pango cairo git python make clang cargo python-pip base-devel gerbv rsync tmux uwsgi uwsgi-plugin-python
RUN cargo install usvg resvg
RUN python3 -m pip install pip==21.3.1
RUN python3 -m pip install flask numpy lxml wasmtime svg_flatten_wasi resvg_wasi flask_wtf
RUN --mount=type=bind,rw,destination=/git \
cd /git/gerbonara && \
python3 -m pip --disable-pip-version-check install . && \
cd /git && \
python3 -m pip --disable-pip-version-check install .
RUN mkdir /gerboweb
ADD ["gerboweb/uwsgi-gerboweb.ini","gerboweb/gerboweb.py","gerboweb/job_processor.py","gerboweb/job_queue.py","/gerboweb/"]
ADD ["gerboweb/static","/gerboweb/"]
ADD ["gerboweb/templates","/gerboweb/"]
ADD gerboweb/gerboweb_prod.cfg /gerboweb/gerboweb.cfg
ENTRYPOINT uwsgi --ini /gerboweb/uwsgi-gerboweb.ini --chmod-socket=660 --socket=/run/uwsgi/socket

Wyświetl plik

@ -7,4 +7,5 @@ plugins = python3
chdir = /var/lib/gerboweb
mount = /=gerboweb:app
env = GERBOWEB_SETTINGS=gerboweb_prod.cfg
mule = job_processor.py

Wyświetl plik

@ -6,6 +6,7 @@ import tempfile
import uuid
from functools import wraps
from os import path
from pathlib import Path
import os
import sqlite3
@ -20,6 +21,11 @@ from job_queue import JobQueue
app = Flask(__name__, static_url_path='/static')
app.config.from_envvar('GERBOWEB_SETTINGS')
if app.config['SECRET_KEY'] is None:
if (p := Path('/run/secrets/gerboweb')).isfile():
app.config['SECRET_KEY'] = p.read_bytes()
else:
app.config['SECRET_KEY'] = os.urandom(32)
class UploadForm(FlaskForm):
upload_file = FileField(validators=[DataRequired()])

Wyświetl plik

@ -1,4 +1,3 @@
MAX_CONTENT_LENGTH=10000000
SECRET_KEY="FIXME: CHANGE THIS KEY"
UPLOAD_PATH="/var/cache/gerboweb/upload"
JOB_QUEUE_DB="/var/cache/gerboweb/job_queue.sqlite3"

Wyświetl plik

@ -0,0 +1,11 @@
[uwsgi]
master = True
cheap = True
die-on-idle = False
manage-script-name = True
plugins = python3
chdir = /gerboweb
mount = /=gerboweb:app
env = GERBOWEB_SETTINGS=gerboweb.cfg
mule = job_processor.py