forked from retoor/snek
- Introduce UserService with create_user method and password hashing - Add UserMapper and BaseMapper for database operations - Create service, mapper, and model registry modules with cached factories - Rename User model class to UserModel for consistency - Make email field optional in both RegisterForm and UserModel - Integrate MarkdownExtension into Jinja2 environment - Add AboutHTMLView and AboutMDView routes with .html and .md endpoints - Append jinja-markdown2 and mistune to project dependencies - Implement markdown rendering in html-frame.js for .md file responses - Create markdown-frame.js custom element for standalone markdown display - Add style.css with dark theme and orange heading colors - Update Dockerfile to Python 3.12.8-alpine3.21 and fix CMD syntax - Extend .gitignore with .resources, .backup*, and docs directories - Refactor form.py with MIT license header and code documentation - Add license and documentation headers to system/http.py - Fix mobile form layout with full-width and full-height constraints
42 lines
1.1 KiB
Docker
42 lines
1.1 KiB
Docker
FROM surnet/alpine-wkhtmltopdf:3.21.2-0.12.6-full as wkhtmltopdf
|
|
FROM python:3.12.8-alpine3.21
|
|
WORKDIR /code
|
|
ENV FLASK_APP=app.py
|
|
ENV FLASK_RUN_HOST=0.0.0.0
|
|
RUN apk add --no-cache gcc musl-dev linux-headers git
|
|
|
|
#WKHTMLTOPDFNEEDS
|
|
RUN apk add --no-cache \
|
|
libstdc++ \
|
|
libx11 \
|
|
libxrender \
|
|
libxext \
|
|
libssl3 \
|
|
ca-certificates \
|
|
fontconfig \
|
|
freetype \
|
|
ttf-dejavu \
|
|
ttf-droid \
|
|
ttf-freefont \
|
|
ttf-liberation \
|
|
# more fonts
|
|
&& apk add --no-cache --virtual .build-deps \
|
|
msttcorefonts-installer \
|
|
# Install microsoft fonts
|
|
&& update-ms-fonts \
|
|
&& fc-cache -f \
|
|
# Clean up when done
|
|
&& rm -rf /tmp/* \
|
|
&& apk del .build-deps
|
|
COPY --from=wkhtmltopdf /bin/wkhtmltopdf /bin/wkhtmltopdf
|
|
COPY --from=wkhtmltopdf /bin/wkhtmltoimage /bin/wkhtmltoimage
|
|
COPY setup.cfg setup.cfg
|
|
COPY pyproject.toml pyproject.toml
|
|
COPY src src
|
|
RUN pip install --upgrade pip
|
|
RUN pip install -e .
|
|
EXPOSE 8081
|
|
|
|
CMD ["python","-m","snek.app"]
|
|
#CMD ["gunicorn", "-w", "10", "-k", "aiohttp.worker.GunicornWebWorker", "snek.gunicorn:app","--bind","0.0.0.0:8081"]
|