Files
snek/Dockerfile
T
retoor 8612c7e0c8 chore: add user service layer, markdown support, and rename model classes
- 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
2025-01-24 13:00:10 +00:00

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"]