Geçenlerde uygulamalarımdan birindeki Swift ağ kodunu bir Vapor sunucusunda yeniden kullanmak üzere ayırmam gereken bir durumla karşılaştım. Kod Mac’imde sorunsuz derlense de sunucuya deploy ettiğimde birçok hatayla karşılaştım. Bu durum, kodun Linux uyumluluğunu kolayca test etmenin bir yolunu aramama yol açtı — çünkü sunucularda genellikle Linux çalışıyor. Neyse ki Ole Begemann’ın 2020’den şu makalesini buldum ve Docker öğrenmek zorunda kalmaktan kurtuldum.
Ole makalesinde, tek bir komutla Swift kodunu Linux ortamında çalıştırmak için basit bir yaklaşım sunuyor. Tek yapman gereken Mac’ine ücretsiz Docker Desktop App’i kurmak. Ama komut oldukça uzun ve hatırlaması zordu, bu yüzden işleri daha da basitleştirmek istedim. Sonunda tek hatırlamam gereken şeyin swift-linux olduğu bir yaklaşıma ulaştım. İşte nasıl:
Docker Komutunu Basitleştirme
Önce Ole’nin komutunu kısalık için daha da sadeleştirmeye karar verdim:
docker run --rm -it -v "$(pwd):/src" -w "/src" swiftKomutun Açıklaması (merak edersen):
docker run: Bir container oluşturur ve başlatır.--rm: Container çıkış yaptığında otomatik olarak kaldırır.-it: Container’ı etkileşimli modda çalıştırır ve bir terminal bağlar.-v "$(pwd):/src": Mevcut dizini ($(pwd)) container’daki/src’ye bağlar, böylece Swift dosyalarına erişebilirsin.-w "/src": Container’daki çalışma dizinini/srcolarak ayarlar.swift: Kullanılacak Swift Docker imajını belirtir.
Güvenlik nedenleriyle Ole’nin komutundan --privileged seçeneğini de kaldırdığımı belirtmek isterim — Swift paketlerini test etmek için nadiren gerekiyor.
Pratik Bir Alias Ekleme
Bu komutu çalıştırmayı kolaylaştırmak için ~/.zshrc dosyama bir alias ekledim (örneğin touch ~/.zshrc ile oluşturabilirsin). Bu, macOS’ta artık varsayılan kabuk olan Zsh kabuğunun konfigürasyon dosyası. İşte nasıl yapacağın:
Terminal’i Aç
~/.zshrcdosyasını düzenle macOS’ta önceden yüklü metin editörü olan TextEdit’i kullanabilirsin. Basitçe şunu çalıştır:open ~/.zshrcAlias’ı ekle Dosyanın en altına kaydır ve şu satırı ekle:
alias swift-linux='docker run --rm -it -v "$(pwd):/src" -w "/src" swift'Dosyayı kaydet ve kapat
Değişiklikleri uygula Konfigürasyon dosyanı yeniden yüklemek için şu komutu çalıştır:
source ~/.zshrc
Linux Ortamında Komut Çalıştırma
Alias kurulduğuna göre, artık Swift kodunu Mac’inden doğrudan bir Linux ortamında kolayca test edebilirsin. Terminal’de proje dizinine git ve şunu çalıştır:
swift-linux☕ İlk çalıştırmada Linux container’ının indirilmesi biraz zaman alacak.
Bu komut seni swift build veya swift test‘i ihtiyacına göre çalıştırabileceğin bir Linux ortamına düşürecek. Mac’ine geri dönmek için sadece exit yaz. Bu sayede her şeyin beklendiği gibi çalışıp çalışmadığını hızlıca görebilir ve sunucuya deploy etmeden önce hataları yakalayabilirsin.
Ve tek hatırlaman gereken swift-linux!

