Skip to content

Ispravljene greške i dodanja poboljšanja vezana uz #58#59

Merged
senko merged 1 commit intosenko:mainfrom
CookieTheory:docker-fix
Oct 30, 2025
Merged

Ispravljene greške i dodanja poboljšanja vezana uz #58#59
senko merged 1 commit intosenko:mainfrom
CookieTheory:docker-fix

Conversation

@CookieTheory
Copy link
Copy Markdown
Contributor

Fixes #58

PostgreSQL verzija

Nadovezujući se uz issue, smanjio sam verziju PostgreSQL baze radi kompatibilnosti na najnoviju 16 verziju. Smatram da je bitno omogućiti rad, a kasnije detaljnije pogledati i riješiti korijen problem s unaccent funkcijom u 17+ verzijama.

Ponašanje portova i Logičko odvajanje eksternog i internog porta

Nadovezujući se na grešku za ponašanje portova, unutar docker-compose.yml bi mijenjao pod ports sa
- "${PORT:-8000}:8000"
na
- "${EXTERNAL_PORT:-8000}:${PORT:-8000}"
tako da i bez namještanja varijabli default vrijednost se može namjestiti i uredno pokrenuti docker.
Unutar .env.docker.example sam dodao EXTERNAL_PORT=8000, te bi ova promjena trebala lagano korisniku omogućiti promjenu i kontrolu na eksternim i internim portovima aplikacije kao i u drugim većim open source projektima i aplikacijama.

Healthcheck

Odmah uz portove, unutar docker-compose.yml sam doradio healthcheck sa
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
na
test: ["CMD-SHELL", "curl -f http://localhost:${PORT:-8000}/health"]
CMD-SHELL se koristi i unutar postgresql checka, tako da je tu čisto proširivanje funkcionalnosti na interni port kakav i postgresql docker ima. Tu nije bitno dodavanje root patha koji ću dodatno objasniti u sljedećoj točki pošto python omogućava health endpoint i na običnom / rootu.

Root path

Stvar koju sam najmanje u issue objasnio, Tu je promjena vezana i uz .env.docker.example i unutar pythona.
Problem je kod reverse proxy konfiguracije da bi me možda api namještavao na drugačiji root, npr ako želimo imati na http://custom-domain.com/cijene-api, aplikacija ne bi mogla dohvaćati svoj json i prikazivati na primjer docs i pristupiti drugim endpointima jer bi smatrala da i dalje živi pod "/" rootom, odnosno na primjeru http://custom-domain.com.

Tu je promjena dodavanjem varijable "ROOT_PATH" u .env.docker.example s default vrijednošću od "/" (standardna vrijednost koja se sada postavi bez varijable), a dopušta korisniku da precizira root port i time prilagodi sa svojom reverse proxy konfiguracijom. Unutar python datoteka config.py i main.py su samo dodane linije za root path logiku, male su promjene koje su samo potrebne prilikom pokretanja aplikacije i ne mijenjaju druge dijelove api-ja. Dodano je: self.root_path: str = os.getenv("ROOT_PATH", "/") u config za dohvat varijable iz .env i root_path=settings.root_path, za samo namještavanje root patha u apiju.

Dodatne linije na kraju su zbog linux line-feeda na nano i kate.

Nadam se da sam dovoljno dobro objasnio promjene i da će se commit implementirati u master kako bi svima olakšalo rad s docker verzijom aplikacije. Također se nadam da nisam previše razdužio :).

@senko senko mentioned this pull request Oct 30, 2025
@senko
Copy link
Copy Markdown
Owner

senko commented Oct 30, 2025

Hvala na detaljnoj analizi i poslanom PRu @CookieTheory !

Osobno ne pokrećem cijene kroz docker tako da nisam naletio na ove probleme (a unaccent dio sam dodao nedavno tako da nisam niti primjetio da ne radi u docker verziji). Kreirao sam issue #60 da možda u budućnosti imamo testove za to, bilo bi super ako bi se netko bio voljan toga primiti.

@senko senko merged commit c2eed2e into senko:main Oct 30, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docker bugs i poboljšanja: greške s verzijom PostgreSQL verzijom i ponašanjem portova, poboljšanja oko health checka, portova i root patha

2 participants