diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f6286c3 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,33 @@ +# Kontekst builda dla obrazów budowanych z KORZENIA repo (dziś: pomocniczy obraz +# wyroczni w CI — patrz .gitea/workflows/tests.yml). Obrazy usług mają własne +# konteksty (services/), więc ten plik ich nie dotyczy. +# +# UWAGA: docker NIE czyta .gitignore. Bez tego pliku do demona poleciałby m.in. +# lokalny wirtualenv (~344 MB) i jądra efemeryd — a runner miał już incydent +# „no space left on device". + +# środowiska lokalne +.env/ +.venv/ +venv/ + +# cache Pythona i narzędzi +__pycache__/ +*.pyc +*.pyo +.pytest_cache/ +.ruff_cache/ +.mypy_cache/ + +# dane generowane/pobierane, odtwarzalne +**/.ephemeris/ +**/.cache/ + +# historia i metadane repo +.git/ +.gitea/ +.claude/ + +# rzeczy nieużywane w obrazach +docs/ +*.md diff --git a/.gitea/workflows/tests.yml b/.gitea/workflows/tests.yml index b5329ea..2c36acb 100644 --- a/.gitea/workflows/tests.yml +++ b/.gitea/workflows/tests.yml @@ -149,11 +149,25 @@ jobs: # niż wykryć po fakcie. - name: Domy — zgodność z wyrocznią (brzegi + wnętrze) run: | - docker run --rm \ - -v "$PWD/services/logic:/logic:ro" \ - -v "$PWD/tests/oracle:/oracle:ro" \ - -e LOGIC_PATH=/logic \ - astrololo/engine-swisseph:ci python /oracle/run.py --mode build + # Pliki WBUDOWUJEMY w obraz, a nie montujemy przez -v. Powód ten sam, + # dla którego wyżej nie startujemy kontenera w tle: job Gitea Actions sam + # działa w kontenerze, więc `-v $PWD/...` docker rozwiązuje na HOŚCIE, + # gdzie tej ścieżki nie ma. Docker nie zgłasza wtedy błędu — po cichu + # tworzy PUSTY katalog, przez co skrypt „znika". Kontekst builda jest + # strumieniowany do demona, więc działa niezależnie od tego, gdzie on stoi. + docker build -t astrololo/oracle:ci -f - . <<'DOCKERFILE' + FROM astrololo/engine-swisseph:ci + COPY services/logic /logic + COPY tests/oracle /oracle + ENV LOGIC_PATH=/logic + DOCKERFILE + docker run --rm astrololo/oracle:ci python /oracle/run.py --mode build + + # Obraz pomocniczy nie jest już potrzebny — a runner miał już incydent + # „no space left on device", więc sprzątamy po sobie od razu. + - name: Usuń obraz pomocniczy wyroczni + if: always() + run: docker rmi -f astrololo/oracle:ci 2>/dev/null || true # Sprzątanie po POPRZEDNICH przebiegach starej wersji workflow, która # zostawiała kontener „swe" na runnerze i blokowała nazwę. Nowa wersja