Docker Python Yerel Kurulum Belalarını Bitiriyor

Yerel Python ortamları şaka gibi. VS Code'da Docker bir gecede bizimkini düzeltti — neden daha önce yapmadık?

Docker Python 'Benim Makinemde Çalışıyor' Kabusunu Yok Etti — theAIcatchup

Key Takeaways

  • Yerel Python ortamlarını bırakın — Docker konteynerleri Mac, Windows, Linux'ta aynı kurulumu garanti ediyor.
  • VS Code Dev Containers sorunsuz kılıyor: Konteyner içinde düzenle, debug'la, çalıştır — yerel gibi.
  • Dockerfile'larda katman önbelleklemesi yeniden derleme sürelerini kısaltıyor; slim imajlar hafif tutuyor.

Docker Python kurulumları artık isteğe bağlı değil.

Zorunlu hale geldiler. Olmalı en azından. Takımınızı hayal edin: Sabah 9’da Slack bildirimleri, her yerde ModuleNotFoundError’lar ve Windows’taki o eleman kodunun kusursuz olduğuna yemin ediyor. Tanıdık geliyor mu? Bizim gerçeğimiz tam beş ay böyleydi. Tam bir utanç.

Orijinal hikaye nokta atışı yapıyor. “Beş ay ‘benim makinemde çalışıyor.’ Beş ay yeni gelenleri alıştırma sorunu. Beş ay takım saatler kaybediyor.” Off. Bu itiraf değil; üretkenliğe karşı savaş suçu. Anlıyorum, kimse bunu kabullenmek istemez. Ama acı gerçek şu: 2024’te hâlâ yerel ortam cehennemiyle boğuşuyorsanız, sorun sizsiniz.

Neden Yerel Python Kurulumları Tam Bir Felaket

Her geliştiricinin makinesi? Frankenstein canavarı. Yılların yarım yamalak pip kurulumları, PATH hileleri, yanlış kaldırdığınız o araçtan kalan hayalet paketler. Mac, Windows, Linux — her biri ayrı bir acı küpü. requirements.txt? Sevimli. Virtualenv’ler? Daha iyi, ama hâlâ cam gibi kırılgan. Ufacık bir Python sürüm güncellemesi — 3.10.4’ten 3.10.11’e — ve pat, kullanımdan kaldırma kıyameti.

Demo hazırlığına bir tam gün kaptırdık buna. Üç saat havada debug. Acınası.

Docker her şeyi tersine çeviriyor. Yorumlayıcınız artık laptop’unuzda yaşamıyor. Projenin içinde. Dockerfile her şeyi söylüyor: Python sürümü, bağımlılıklar, OS tabanı. Bir kere derle, her yerde çalıştır. Bahane yok.

VS Code’un Dev Containers’ı mı? Müthiş. Direkt dalıyor içeri — terminal, debugger, IntelliSense, hepsi konteyner içinde. Yerel gibi hissettiriyor. Değil ama. Dâhi işi.

requirements.txt’miz vardı. Virtual ortamlarımız vardı. İyi niyetli bir README’miz vardı, kurulum talimatları altı hafta eskimeşti bile. Ama şunu yoktu: Windows makinemdeki Python yorumlayıcısının, meslektaşımın MacBook’undakinden ya da üçüncü takım arkadaşımızın Ubuntu istasyonundakinden aynı dünyaya baktığının zerre garantisi.

Tam isabet. Her takımı musallat eden hayalet bu.

Docker Python Kurulumu: Safsata Yok, Direkt Rehber

Abartmayın. Biz şunu kurduk. Proje kök dizini:

my-project/ ├── .devcontainer/ │ └── devcontainer.json ├── Dockerfile ├── requirements.txt └── main.py

Önce Dockerfile. Basit mi basit:

FROM python:3.14.3-slim

RUN apt-get update && apt-get install -y --no-install-recommends git curl && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

Slim imaj? Akıllı — şişmanlığı atıyor, yavaş bağlantılarda daha hızlı çekiyor. WORKDIR /app? Öngörülebilir yollar, haritalama baş ağrısı yok. requirements.txt önce? Katman önbellekleme sihri. Kod değişirse? Pip’i atlayıp yeniden derleme. Verimlilik cenneti.

Şimdi .devcontainer/ içindeki devcontainer.json. VS Code’u buna bağlıyor:

{
  "name": "Python Dev",
  "dockerfile": "../Dockerfile",
  "workspaceFolder": "/app",
  "features": {
    "ghcr.io/devcontainers/features/python:1": {
      "version": "3.14.3"
    }
  }
}

Reopen in Container’a basın. Pat — VS Code Docker içinde yeniden doğuyor. Eklentileriniz? Dışarıda kalıyor. Terminal? Saf konteyner. Debugger? Anında canlanıyor.

Bir öğleden sonra sürdü. Aylar kurtardı.

Python Takımınız İçin Docker Aşırı mı?

Asla. Tek başına geliştirici? Yine yapın. Neden? 2027’de repoyu açtığınızda gelecekteki siz teşekkür eder. Freelancer mı onboard ediyorsunuz? Dakikalar, günler değil.

Ama işte benim özel görüşüm, kimsenin söylemediği kısım: Bu Python’un Node’un karanlık çağlarındaki ‘npm install’ anı. 2010’u hatırlayın? Node geliştiricileri paket cehenneminde boğuluyor, sürümler boşanma gibi çarpışıyor. Yarn yarısını düzeltti; Docker her şeyi. Python’un pipenv-poetry-condaborg kavgaları? Bitti. Konteynerler kazandı. Cesur tahmin: 2026’ya kadar GitHub her Python reposu için devcontainer.json otomatik önerir. Kulak asma, risk sende.

Kurumsal laflar buna “tekrarlanabilir derlemeler” diyor. Boşver — bu akıl sigortası.

Eleştiri vakti. Orijinal yazar beş ay beklemiş. Neden? Tembellik?

Sarah Chen
Written by

AI research editor covering LLMs, benchmarks, and the race between frontier labs. Previously at MIT CSAIL.

Worth sharing?

Get the best AI stories of the week in your inbox — no noise, no spam.

Originally reported by dev.to