Tag Archives: docker

Curio

Pre par nedelja pravio kolegama tutorijal kako Klod kod povezati sa našim projektima da ne bi radio u mraku kada treba nešto da se redizajnira. Pošto ne koristim Klod, morao sam da kupim pretplatu da bih mogao uopšte da ga pokrenem pa sam se isprsio 20 dolara. U stvari prvo sam platio za nešto ne znam ni ja šta, tokene, 20 dolara, pa se ispostavilo da mi za Klod kod treba baš pretplata a ne samo tokeni te sam platio još 20 🙁 Sad, da mi to ne bi propalo, dadoh mu projekat da mi napravi, veb aplikaciju za vođenje kolekcija. Oko sat vremena mu je trebalo, potrošio je skoro deset dolara. Deluje da aplikacija radi kako treba, sutra ću malo da se udubim i možda da vratim nešto na doradu 🙂

Vindouz u brauzeru

NIsam znao da ovo postoji kao samostalan projekat. Ranije ove godine sam probao alat koji se zove WinBoat a tek sad sam shvatio da on u pozadini koristi dockur/windows što je u stvari Vindouz koji radi pod Dokerom a pristupa mu se iz brauzera. Na isti način radi i sestrinski projekat dockur/macos: Mek pod Dokerom. Idealno ako hoćete da pokrenete neki Vindouz program koji neće da radi pod Linuksom.

Ili na primer ako hoćete da opišete kolegama kako da pod Vindozom instaliraju Git i Node, kloniraju projekat i pokrenu ga pomoću npm 🙂

Laravel Sail

OK, isprobao sam i Laravel Sail. Pre svega, ako hoćemo da koristimo SQLite bazu u projektu, moramo u lokalu da instaliramo php-sqlite ekstenziju i da je uključimo u php.ini:

sudo pacman -S php-sqlite
sudo nano /etc/php/php.ini # omogućiti pdo_sqlite i sqlite3

Onda kreiramo projekat u tekućem direktorijumu

composer create-project --prefer-dist laravel/laravel .

pa instaliramo Sail:

php artisan sail:install

E sad, Sail radi samo sa PHP-ovim serverom, ne može da se pokrene nginx ili Apache što je bezveze. Ako planiramo da projekat ikada ode u produkciju, neće se vrteti na PHP serveru 🙂 Tako da… nije ovo za mene. Držim se mog Docker compose-a.

You’ve hit on a valid point. Sail is essentially a convenience wrapper around Docker Compose. Here’s the honest breakdown:

What Sail Actually Provides

 sail up = docker compose up
 sail artisan migrate = docker compose exec app php artisan migrate
 sail composer install = docker compose exec app composer install
 sail npm run dev = docker compose exec app npm run dev
 Pre-built PHP images = You build your own
 sail:add for services = You write the YAML yourself

Sail Makes Sense When:

 • You’re new to Docker — zero config to get started
 • Quick prototyping — composer require laravel/sail and go
 • You don’t care about production parity — just need something running
 • Team with mixed Docker experience — simpler commands for everyone

Plain Docker Compose Makes Sense When:

 • You want production parity — your exact Nginx/PHP-FPM setup
 • You already know Docker — Sail’s abstractions just get in the way
 • Custom requirements — specific extensions, configs, services
 • You want transparency — no magic, you control everything

My Recommendation

Since you want to replicate production and you’re comfortable with Docker:
Skip Sail. Use plain Docker Compose.
Create your own docker-compose.yml with:
 • Nginx configured like production
 • PHP-FPM with your production extensions
 • Same MySQL/PostgreSQL version as production

You’ll have full control, no workarounds, and your local environment will actually match production.

Laravel + Docker compose

Igram se sa podizanjem novog Laravel projekta u Dokeru i došao sam do toga da je najlakše krenuti od Dokera, odnosno da u okviru direktorijuma u kojem će se nalaziti projekat prvo kreiramo docker direktorijum. Stablo bi izgledalo ovako:

projekat
└── docker
    ├── docker-compose.yml
    ├── nginx
    │   ├── Dockerfile
    │   └── nginx.conf
    └── php
        └── Dockerfile

Onda kreiramo i pokrenemo kontejnere

cd docker
docker-compose up -d

pa kreiramo Laravel projekat

docker-compose exec app composer create-project --prefer-dist laravel/laravel projekat

Projekat će se instalirati u poddirektorijumu projekta

projekat
├── docker
└── projekat

a mi možemo sve Laravel direktorijume i fajlove da izvučemo jedan nivo iznad i da obrišemo ovaj poddirektorijum. Postoji opcija da se projekat instalira u tekućem direktorijumu tako što se doda tačka na kraju composer create-project komande ali ona neće to da uradi ako direktorijum nije prazan :-/

Na kraju možemo da instaliramo Vite i kompajliramo asete:

npm install vite
npm run dev

Moraću da probam Laravel Sail da vidim kako to radi.