Předělání všeho, co používalo requirements.txt

This commit is contained in:
Jonas Havelka 2025-12-16 21:15:32 +01:00
parent 0d14f56dc9
commit 9e7122b516
6 changed files with 27 additions and 19 deletions

View file

@ -1,4 +1,4 @@
FROM python:3.9.18-slim-bullseye FROM python:3.11.2-slim-bullseye
# set work directory # set work directory
WORKDIR /usr/mamweb-docker WORKDIR /usr/mamweb-docker
@ -16,10 +16,7 @@ RUN apt-get update && apt-get install -y \
imagemagick \ imagemagick \
netcat \ netcat \
postgresql-client postgresql-client
RUN pip install --upgrade pip RUN pip install --upgrade pip setuptools
COPY ./requirements.txt .
COPY ./constraints.txt .
RUN pip install -r requirements.txt
# allow correct locales # allow correct locales
RUN sed -i '/cs_CZ.UTF-8/s/^# //g' /etc/locale.gen && \ RUN sed -i '/cs_CZ.UTF-8/s/^# //g' /etc/locale.gen && \
@ -31,6 +28,11 @@ ENV LC_ALL cs_CZ.UTF-8
# copy project # copy project
COPY . . COPY . .
# Install dependencies
RUN pip install --upgrade .
RUN pip install --upgrade --group dev
RUN pip install --upgrade --group doc
# create test data once db is ready # create test data once db is ready
RUN chmod +x /usr/mamweb-docker/docker_entrypoint.sh RUN chmod +x /usr/mamweb-docker/docker_entrypoint.sh
ENTRYPOINT ["/usr/mamweb-docker/docker_entrypoint.sh"] ENTRYPOINT ["/usr/mamweb-docker/docker_entrypoint.sh"]

View file

@ -51,10 +51,6 @@ checklinks.sh
------------- -------------
„Týrací“ skript na kontrolu, že nic, kam se lze proklikat na webu, nehází chybu. „Týrací“ skript na kontrolu, že nic, kam se lze proklikat na webu, nehází chybu.
constraints.txt
---------------
Obsahuje omezení na :ref:`requirements.txt`.
convert_spaces_to_tabs.sh convert_spaces_to_tabs.sh
------------------------- -------------------------
Skript na změnu odsazování. Skript na změnu odsazování.
@ -81,6 +77,14 @@ README.md
--------- ---------
Většina je spíš zbytek po bývalých webařích. Většina je spíš zbytek po bývalých webařích.
requirements.txt pyproject.toml
---------------- --------------
Seznam balíčků, které jsou potřeba pro běh mamwebu. (Cílem je vytvoření virtualenvu se všemi těmito balíčky, např. pomocí daného příkazu v :ref:`Makefile`.) Popis Pythoního projektu, tedy například seznam balíčků, které jsou potřeba pro běh mamwebu. (Cílem je vytvoření virtualenvu se všemi těmito balíčky, např. pomocí daného příkazu v :ref:`Makefile`.)
uv.lock + .python-version
-------------------------
Pokud používáš uv, tak je to soubor s verzemi balíčků + Pythonu, které jsou potřeba pro běh mamwebu.
dockerfile-compose.yml + docker_entrypoint.sh + Dockerfile
----------------------------------------------------------
Soubory pro Docker.

View file

@ -75,7 +75,7 @@ Skripty pro lokální vývoj
^^^^^^^ ^^^^^^^
``make/install_web`` (nebo ekvivalentně ``make/install``) ``make/install_web`` (nebo ekvivalentně ``make/install``)
Vytvoří virtualenv a nainstaluje do něj závislosti webu podle ``requirements.txt``. Následně popíše, jak vyrobit zbytek lokálního webu. Vytvoří virtualenv a nainstaluje do něj závislosti webu podle ``pyproject.toml``. Následně popíše, jak vyrobit zbytek lokálního webu.
``make/run`` ``make/run``
Spustí lokální web (ekvivalentní s ``./manage.py runserver``) Spustí lokální web (ekvivalentní s ``./manage.py runserver``)
``make/schema`` ``make/schema``

View file

@ -62,9 +62,9 @@ se do ní (``cd mamweb``)
O zprovoznění webu se stará skript ``make/install_web``, stačí ho spustit. Ten O zprovoznění webu se stará skript ``make/install_web``, stačí ho spustit. Ten
vytvoří virtualenv (neexistuje-li) a nainstaluje do něj závislosti webu (podle vytvoří virtualenv (neexistuje-li) a nainstaluje do něj závislosti webu (podle
souboru ``requirements.txt``). souboru ``pyproject.toml``).
.. FIXME: Novowebaři zmínka o requirements.txt tady moc nepomůže, to má být na .. FIXME: Novowebaři zmínka o pyproject.toml tady moc nepomůže, to má být na
stránce o celkové stavbě repozitáře a stacku… stránce o celkové stavbě repozitáře a stacku…
Následně je potřeba nahrát další data do databáze, což uděláš pomocí příkazů Následně je potřeba nahrát další data do databáze, což uděláš pomocí příkazů

View file

@ -16,7 +16,7 @@ Základ webu
=========== ===========
- ``python3`` Ideálně Python 3.9, jenž je na Gimlim - ``python3`` Ideálně Python 3.9, jenž je na Gimlim
- ``python3-pip`` pro instalaci dalších Pythoních balíčků podle ``requirements.txt`` - ``python3-pip`` pro instalaci dalších Pythoních balíčků podle ``pyproject.toml``
- ``python3-venv`` - ``python3-venv``
- ``gcc`` kompilace Pythoních knihoven ze zdrojových distribucí (sdist), možná (neotestováno) jde jako alternativu použít ``python3-wheel`` a stahovat bdists - ``gcc`` kompilace Pythoních knihoven ze zdrojových distribucí (sdist), možná (neotestováno) jde jako alternativu použít ``python3-wheel`` a stahovat bdists
- ``python3-dev`` taktéž - ``python3-dev`` taktéž
@ -45,7 +45,7 @@ Dokumentace
=========== ===========
- ``make`` pro zbuildění - ``make`` pro zbuildění
- Pythoní balíčky podle příslušné části ``requirements.txt`` - Pythoní balíčky podle příslušné části ``pyproject.toml``
Vývojové nástroje Vývojové nástroje
================= =================
@ -57,7 +57,7 @@ Vývojové nástroje
- ``ssh`` - ``ssh``
- ``graphviz`` pro vygenerování schématu - ``graphviz`` pro vygenerování schématu
- ``rsync`` - ``rsync``
- ``ipython3`` hezčí interaktivní shell (stačí z ``requirements.txt``) - ``ipython3`` hezčí interaktivní shell (stačí z ``pyproject.toml``)
Potenciální usnadnění života Potenciální usnadnění života
============================ ============================

View file

@ -8,7 +8,9 @@ ensure_venv
# Aktualizace toolchainu # Aktualizace toolchainu
pip install --upgrade pip setuptools pip install --upgrade pip setuptools
# Instalace závislostí webu # Instalace závislostí webu
pip install -r requirements.txt --upgrade pip install --upgrade .
pip install --upgrade --group dev
pip install --upgrade --group doc
# XXX: Připomínka z původního Makefile: # XXX: Připomínka z původního Makefile:
echo 'Pro vygenerování tesdat spusť ./manage.py testdata echo 'Pro vygenerování tesdat spusť ./manage.py testdata