fix(ci): wyrocznia domów — wbuduj pliki w obraz zamiast montować #61

Merged
gitea merged 1 commits from fix/oracle-ci-mount into master 2026-08-05 10:09:26 +00:00
Owner

Krok padał na python: can't open file '/oracle/run.py'.

Przyczyna

Ta sama pułapka, którą złapano już wcześniej przy -p i localhoście (jest o niej
komentarz w tym samym pliku): job Gitea Actions sam działa w kontenerze, więc
docker run -v $PWD/... demon 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".

Poprawka

Zamiast montowania wbudowujemy pliki w pomocniczy obraz (FROM engine-swisseph:ci + COPY). Kontekst builda jest strumieniowany do demona,
więc działa niezależnie od tego, gdzie ten demon stoi. Obraz kasujemy po użyciu.

Przy okazji: .dockerignore

Docker nie czyta .gitignore, więc do demona poleciałby cały korzeń repo —
z lokalnym wirtualenvem (344 MB) i jądrami efemeryd włącznie. Kontekst spada
z 382 MB do 5,9 MB, co na runnerze z historią „no space left on device" nie jest
kosmetyką. Plik dotyczy tylko buildów z korzenia repo — obrazy usług mają własne
konteksty i go nie widzą.

Weryfikacja bez dockera

Nie mam tu demona, więc sprawdziłem to, co się da, zamiast zgadywać drugi raz:
dokładny tekst, jaki dostanie powłoka po dedentacji YAML (terminator heredoca
w kolumnie 0
— krytyczne), istnienie ścieżek COPY i to, że reguły
.dockerignore nie wycinają plików potrzebnych do uruchomienia. Wzorzec
(<<'…' w run: |) jest ten sam, co w działającym smoke teście obok.

Krok padał na `python: can't open file '/oracle/run.py'`. ## Przyczyna Ta sama pułapka, którą złapano już wcześniej przy `-p` i localhoście (jest o niej komentarz w tym samym pliku): **job Gitea Actions sam działa w kontenerze**, więc `docker run -v $PWD/...` demon 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". ## Poprawka Zamiast montowania **wbudowujemy pliki w pomocniczy obraz** (`FROM engine-swisseph:ci` + `COPY`). Kontekst builda jest **strumieniowany** do demona, więc działa niezależnie od tego, gdzie ten demon stoi. Obraz kasujemy po użyciu. ## Przy okazji: `.dockerignore` Docker **nie czyta `.gitignore`**, więc do demona poleciałby cały korzeń repo — z lokalnym wirtualenvem (**344 MB**) i jądrami efemeryd włącznie. Kontekst spada **z 382 MB do 5,9 MB**, co na runnerze z historią „no space left on device" nie jest kosmetyką. Plik dotyczy tylko buildów z korzenia repo — obrazy usług mają własne konteksty i go nie widzą. ## Weryfikacja bez dockera Nie mam tu demona, więc sprawdziłem to, co się da, zamiast zgadywać drugi raz: dokładny tekst, jaki dostanie powłoka po dedentacji YAML (**terminator heredoca w kolumnie 0** — krytyczne), istnienie ścieżek `COPY` i to, że reguły `.dockerignore` nie wycinają plików potrzebnych do uruchomienia. Wzorzec (`<<'…'` w `run: |`) jest ten sam, co w działającym smoke teście obok.
gitea added 1 commit 2026-08-04 21:20:44 +00:00
fix(ci): wyrocznia domów — wbuduj pliki w obraz zamiast montować (-v nie działa)
Testy / Testy warstwy logicznej (silnik) (pull_request) Successful in 10m28s
Testy / Testy warstwy prezentacji (dostęp do baz) (pull_request) Successful in 9m29s
Testy / Testy warstwy bazodanowej (ochrona baz) (pull_request) Successful in 9m28s
Testy / Build obrazu silnika B (swisseph) (pull_request) Successful in 22s
Testy / Kontrola składni wszystkich warstw (pull_request) Successful in 9s
build / build (push) Successful in 2m47s
Testy / Testy warstwy logicznej (silnik) (push) Successful in 10m31s
Testy / Testy warstwy prezentacji (dostęp do baz) (push) Successful in 9m28s
Testy / Testy warstwy bazodanowej (ochrona baz) (push) Successful in 9m28s
Testy / Build obrazu silnika B (swisseph) (push) Successful in 3m23s
Testy / Kontrola składni wszystkich warstw (push) Successful in 9s
40f5e459e0
Krok padał na `python: can't open file '/oracle/run.py'`. Przyczyna jest tą samą
pułapką, którą złapano już wcześniej przy `-p` i localhoście (jest o niej komentarz
w tym samym pliku): job Gitea Actions SAM działa w kontenerze, więc `docker run -v
$PWD/...` demon 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".

Zamiast montowania wbudowujemy pliki w pomocniczy obraz (FROM engine-swisseph:ci
+ COPY). Kontekst builda jest strumieniowany do demona, więc działa niezależnie od
tego, gdzie ten demon stoi. Obraz kasujemy po użyciu.

Przy okazji .dockerignore: docker NIE czyta .gitignore, więc do demona poleciałby
cały korzeń repo — z lokalnym wirtualenvem (344 MB) i jądrami efemeryd włącznie.
Kontekst spada z 382 MB do 5,9 MB, co na runnerze z historią „no space left on
device" nie jest kosmetyką. Plik dotyczy tylko buildów z korzenia repo — obrazy
usług mają własne konteksty (services/<usługa>) i go nie widzą.

Zweryfikowane bez dockera: sprawdzony dokładny tekst, jaki dostanie powłoka po
dedentacji YAML (terminator heredoca w kolumnie 0), istnienie ścieżek COPY oraz to,
że reguły .dockerignore nie wycinają plików potrzebnych do uruchomienia.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
gitea merged commit 40f5e459e0 into master 2026-08-05 10:09:26 +00:00
gitea deleted branch fix/oracle-ci-mount 2026-08-05 10:09:26 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gitea/astrololo#61