Konteynerler—özellikle Docker—teknoloji dünyasını tamamen dönüştürdü. Ancak Docker ne kadar güçlü olsa da, kullanıma hazır olarak sunmadığı bir şey, özellikle güncellemelerin mevcut olup olmadığını bilmek söz konusu olduğunda, kullandığınız görüntüleri izlemenin bir yoludur.
Elbette, sadece birkaçını yönetebiliyorsanız bu büyük bir sorun değil. Bu durumda, onları durdurmak, eski görüntüleri silmek, yenilerini çekmek ve her şeyi manuel olarak yeniden başlatmak yeterince kolaydır, tıpkı eski güzel günlerdeki gibi.
Peki ya düzinelerce konteynerin olduğu bir ev laboratuvarı işletiyorsanız? Ya da belki günlük işiniz üretim ortamında yüzlercesini yönetmeyi içeriyorsa? Bu durumda, her şeyi hızlı bir şekilde manuel olarak güncellemek bir kabusa dönüşür.
İşte tam bu noktada merkezi bir izleme sistemi devreye giriyor. Bu sistem, tüm konteynerlerinizi takip eden, güncellemeler mevcut olduğunda sizi bilgilendiren ve hatta bunları arka planda otomatik olarak güncelleyen bir araçtır.Yıllarca bu görevi yerine getirmesi için Watchtower’a güvendim (işte rehberimiz) ve harika bir iş çıkardı. Ne yazık ki Kasım 2023’ten beri herhangi bir güncelleme görmedi. Bu beni yeni bir çözüm aramaya yöneltti ve o zaman What’s Up Docker’ı (WUD) keşfettim.
Bu kılavuzda, çalıştırdığınız Docker imajları hakkında bilgi sahibi olmanız için güvenilir bir yola sahip olmanız amacıyla kurulum ve ayarlama konusunda size yol göstereceğim. Ancak kuruluma dalmadan önce, WUD’un ne hakkında olduğuna kısaca bir bakalım.
Docker (WUD) Hakkında Kısa Bir Giriş
Docker (WUD), görüntü güncellemelerini izleyerek Docker konteyner bakımını basitleştirmek için tasarlanmış, ücretsiz, açık kaynaklı ve kendi kendine barındırılabilen bir araçtır.
Çalışma şekli oldukça basittir: WUD, daha yeni görüntü sürümlerini tespit etmek için çalışan konteynerleri düzenli olarak Docker kayıt defterlerine göre kontrol eder. Bunu, en son kullanılabilir etiketler hakkında meta verileri periyodik olarak çekerek ve bunları dağıtılan konteynerlerimizle karşılaştırarak gerçekleştirir.Güncellemeler tespit edildiğinde WUD, e-posta, Slack, Discord, webhook entegrasyonları vb. dahil olmak üzere çeşitli iletişim kanalları aracılığıyla otomatik olarak bildirimleri tetikleyebilir.
WUD’da kişisel olarak sevdiğim şeylerden biri de esnekliği; onu iki farklı modda çalışacak şekilde ayarlayabiliyorsunuz.
Birincisi yalnızca bildirim modudur. WUD, bir Docker imajının yeni bir sürümünün mevcut olduğunu algıladığında, bunu size bildirir. Bu şekilde, konteynerinizi ne zaman ve nasıl güncelleyeceğiniz konusunda tam kontrole sahip olursunuz.
İkinci mod—tam otomatik diyelim—işleri bir adım öteye taşır. Bir güncelleme mevcut olduğunda, WUD otomatik olarak çalışan konteyneri durdurur, güncellenmiş görüntüyü çeker ve konteyneri yeni sürümü kullanarak yeniden başlatır. Tüm bunlar arka planda sessizce gerçekleşir ve genellikle sadece birkaç saniye sürer.
Ayrıca, WUD otomatik olarak “docker-compose.yml” dosyanızı yeni imaja işaret edecek şekilde güncelleyebilir. Oldukça kullanışlı, değil mi?Ve şimdi, işin en güzel yanı: WUD, bu davranışı konteyner bazında ince ayar yapmanızı sağlar. Örneğin, kritik konteynerler üzerinde tam kontrol sahibi olmak ve yalnızca bunlar için güncelleme bildirimleri almak isteyebilirsiniz, otomatik eylem olmadan. Aynı zamanda, daha az kritik konteynerler herhangi bir manuel müdahale olmadan otomatik olarak güncellenecek şekilde ayarlanabilir.
Hangi modu kullanacağınız tamamen size kalmış. Tüm bunlar WUD konteynerinin kendisindeki ortam değişkenleri ve izlemesini istediğiniz konteynerlere belirli etiketler atayarak kontrol edilir. Bunu tam olarak nasıl ayarlayacağınızı biraz daha aşağıda anlatacağım. Ama şimdi biraz çalışalım.
Docker Compose ile What’s Up Docker’ı yükleyin
İlk adım, Docker Compose dağıtım dosyamızın yerleştirileceği proje dizinini oluşturmaktır. Ardından ona geçin.
mkdir wud
cd wud
Code language: Bash (bash)
Ardından, favori terminal metin düzenleyicinizi açın, bir “docker-compose.yml” dosyası oluşturun, aşağıdaki içeriği içine yapıştırın, dosyayı kaydedin ve ardından düzenleyiciden çıkın.
services:
whatsupdocker:
image: getwud/wud
container_name: wud
environment:
- WUD_WATCHER_LOCAL_CRON=0 6 * * *
- WUD_AUTH_BASIC_MY_USER=<YOUR_USERNAME>
- WUD_AUTH_BASIC_MY_HASH=<YOUR_PASSWORD>
ports:
- 3000:3000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Code language: YAML (yaml)
Gördüğünüz gibi, dağıtım kurulumu oldukça basittir. Önemli kısım “ortam” bölümüdür. “WUD_WATCHER_LOCAL_CRON” değişkeni, WUD’nin Docker kapsayıcılarınızı güncellemeler için ne sıklıkla kontrol etmesi gerektiğini tanımlamak için standart CRON sözdizimini kullanır. Bu örnekte, her gün sabah 6:00’da çalışacak şekilde ayarlanmıştır—ancak elbette bunu kendi programınıza uyacak şekilde ayarlayabilirsiniz.
Ancak daha fazla ilerlemeden önce, WUD’un temel parçalarından biri olan “gözlemciler” hakkında konuşmak için bir dakikanızı ayıralım. Basitçe ifade etmek gerekirse, gözlemciler WUD’un konteynerleri nasıl taradığını tanımlar.
Bu deseni takip ederler (özellikle CRON için): “WUD_WATCHER_{watcher_name}_CRON,” burada “{watcher_name}” istediğiniz herhangi bir ad olabilir. Örneğin, ben kurulumumda “LOCAL” kullandım, ancak başka bir şey seçmekte özgürsünüz—tamamen size kalmış.
WUD aslında birkaç tür izleyiciyi destekler, bunlara bu bağlantıdan bakabilirsiniz. Bunları anlamak bir sonraki adımlar için önemli olduğundan, bunlara bir göz atmanızı şiddetle tavsiye ederim, burada bunları kullanarak belirli örneklerde size yol göstereceğim. Şimdi, dağıtımımıza geri dönelim.
Sonraki iki değişken, “WUD_AUTH_BASIC_MY_USER” ve “WUD_AUTH_BASIC_MY_HASH”, WUD web arayüzüne erişmek için bir kullanıcı adı ve parola belirlemek için kullanılır. Sonuçta, herhangi birinin etrafta dolaşıp hangi kapsayıcıları çalıştırdığımızı görmesini istemeyiz, değil mi?Kullanıcı adı için istediğinizi kullanabilirsiniz – tamamen size kalmış. Eğlence, parolayı ayarlamaya gelince başlıyor. “WUD_AUTH_BASIC_MY_HASH” ortam değişkeni, Apache tarzı MD5 karma algoritmasını kullanarak bir değer bekliyor, bu yüzden önce onu üretmeliyiz.
Şimdi, sisteminizde zaten “apache” paketi yüklüyse (htpasswd aracını içerir), bu çok kolaydır. Ama sadece bir parola karması oluşturmak için tüm Apache’yi yüklemek? Evet… bu, hafif tabirle, aşırıya kaçmak olur. Neyse ki, bunu yapmanın başka bir yolu var.
Apache MD5 tabanlı parola algoritması (APR1 olarak da bilinir) kullanılarak karma bir parola üreten aşağıdaki komutu kullanacağız.
openssl passwd -apr1
Code language: Bash (bash)
Bir parola girmeniz istenecek, ardından parolayı tekrarlayacaksınız ve son olarak komut aşağıdaki gibi bir dize çıktısı verecektir:
$apr1$zv6vdUFS$g0mH9DjK7ON4FGtps1Xpt0
Code language: PHP (php)

Şimdi zor kısım şu: bu dizeyi alıp, her “$” sembolü gördüğünüzde (genellikle üç noktada belirir), hemen yanına bir “$” daha eklemeniz gerekir. Yani, orijinal dize:
$apr1$zv6vdUFS$g0mH9DjK7ON4FGtps1Xpt0
Code language: PHP (php)
Turns into this:
$$apr1$$zv6vdUFS$$g0mH9DjK7ON4FGtps1Xpt0
Code language: PHP (php)
Artık şifremizi aldığımıza göre, “docker-compose.yml” dosyasını “<YOUR_USERNAME>” ve “<YOUR_PASSWORD>” ifadelerini az önce oluşturduğumuz gerçek kullanıcı adı ve şifreyle değiştirerek güncelleyelim. Sonunda, aşağıdaki gibi görünmelidir:
- WUD_AUTH_BASIC_MY_USER=bobby
- WUD_AUTH_BASIC_MY_HASH=$$apr1$$zv6vdUFS$$g0mH9DjK7ON4FGtps1Xpt0
Code language: YAML (yaml)
Son olarak değişiklikleri kaydedin ve konteyneri arka planda (bağımsız modda) çalıştırın:
docker compose up -d
Code language: Bash (bash)

Herhangi bir sebepten dolayı bir şeyler ters giderse, basit Docker komutuyla konteyner günlüğünü kontrol ederek ne olduğunu kolayca anlayabilirsiniz:
docker logs wud -f
Code language: Bash (bash)
WUD Web Kullanıcı Arayüzünü açın
Sadece kısa bir hatırlatma: Aşağıda görebileceğiniz gibi, burada şifrelenmemiş bir HTTP bağlantısı kullanıyorum—bu yalnızca demo için. Gerçek bir üretim kurulumunda, WUD’u her zaman ters bir proxy’nin (Nginx, Nginx Proxy Manager, Caddy, Traefik, HAProxy veya tercih ettiğiniz herhangi bir diğer seçenek gibi) arkasına koyun ve güvenli bir HTTPS bağlantısı üzerinden sunun. Şimdi, kılavuza geri dönelim.
Tarayıcınızı açın ve “http://localhost:3000” (aynı ana bilgisayardan WUD’a erişiyorsanız) veya “http://<server-ip-address>:3000“ (uzaktan erişiyorsanız) adresine gidin. Elbette, “<server-ip-address>” kısmını gerçek sunucunuzun IP adresiyle değiştirin. WUD giriş sayfası sizi karşılayacaktır.

Kullanıcı adınızı ve şifrenizi girip “GİRİŞ” butonuna basınız.

Ve fazla heyecanlanmadan önce, biraz frene basmama izin verin. Dürüst olmak gerekirse, henüz pek bir şey yapmadık—gerçek iş daha yeni başlıyor.
WUD’u yapılandırın
Bahsettiğim gibi, WUD’u başarıyla kurduk ve arka planda gayet iyi çalışıyor. Ama mesele şu ki—henüz ona işini nasıl yapmasını istediğimizi söylemedik. En önemlisi, kapsayıcı güncellemeleri olduğunda bildirim almanın bir yolunu ayarlamadık, ki bu onu ilk başta kurmamızın ana nedeniydi.
Şimdi başka bir şeyden bahsetmek için de iyi bir zaman: İhtiyacımız olan ayarlar WUD web arayüzü üzerinden yapılandırılabilir değil – bunu bir kontrol panelinden çok bir pano olarak düşünün. Bunun yerine, tüm yapılandırmalar WUD konteynerinin kendisinde doğru ortam değişkenlerini ayarlayarak veya izlediği konteynerlere etiketler ekleyerek yapılır.
O halde gelin birkaç stratejiyi inceleyelim ve ihtiyaçlarınız için hangilerini kullanacağınıza siz karar verin.
WUD Bildirim Kurulumu
Elbette, öncelikle bir kapsayıcı güncellemesi mevcut olduğunda bize bildirecek bildirimleri ayarlamak istiyoruz. Bu, WUD’nin tetikleyiciler olarak adlandırdığı, bir kapsayıcının yeni bir sürümü algılandığında devreye giren ve eylemler gerçekleştiren mekanizmalar aracılığıyla gerçekleştirilir.
WUD aklınıza gelebilecek hemen hemen her bildirim yöntemini destekler: Apprise, Discord, Gotify, Ntfy, Pushover, Slack, SMTP, Telegram—adını siz koyun. Bu örnekte, bildirimleri eski usulde (evet, ben öyle bir adamım) ayarlama konusunda size yol göstereceğim: e-postayla, SMTP kullanarak. Elbette, başka bir şey kullanmayı tercih ederseniz, ihtiyaçlarınıza uyan tetikleyici için belgelere göz atın.
Ancak bu durumda Gmail kullanmak istiyorsanız, önce uygulamaya özel bir parola oluşturmanız gerekir. Açık olmak gerekirse, bu normal Gmail parolanızla aynı değildir. Ayrı bir paroladır, Google’ın üçüncü taraf uygulamalarıyla (WUD gibi) kullanım için oluşturduğu, sadece bu amaç için yapılmış, 16 karakterli özel bir paroladır. Bir tane oluşturmak çok kolaydır – sadece bu bağlantıya tıklayın ve talimatları izleyin.Now that you’ve generated the application password, open your “docker-compose.yml” file. Then, add the following under the “environment” section:
services:
whatsupdocker:
image: getwud/wud
...
environment:
- WUD_TRIGGER_SMTP_GMAIL_HOST=smtp.gmail.com
- WUD_TRIGGER_SMTP_GMAIL_PORT=465
- WUD_TRIGGER_SMTP_GMAIL_USER=<YOUR-GMAIL-ACCOUNT>
- WUD_TRIGGER_SMTP_GMAIL_PASS=<THE-APP-PASSWORD>
- WUD_TRIGGER_SMTP_GMAIL_FROM=<YOUR-GMAIL-ACCOUNT>
- WUD_TRIGGER_SMTP_GMAIL_TO=<YOUR-GMAIL-ACCOUNT>
- WUD_TRIGGER_SMTP_GMAIL_TLS_ENABLED=true
Code language: YAML (yaml)
Just make sure to replace “<YOUR-GMAIL-ACCOUNT>” with your actual Gmail address in all three spots, and swap out “<THE-APP-PASSWORD>” with the app password you just generated.
Son olarak, WUD konteyneri zaten çalışıyorsa, yeniden dağıtmak ve değişiklikleri uygulamak için aşağıdaki iki komutu çalıştırın:
docker compose down
docker compose up -d
Code language: Bash (bash)
Bildirimlerin düzgün çalışıp çalışmadığını kontrol etmek için WUD web arayüzüne geri dönün. Sol taraftaki menüden “Yapılandırma” > “Tetikleyiciler”e gidin. Sonra, “smtp/gmail” tetikleyicisine tıklayın, “TEST” düğmesine tıklayın ve ardından “TRIGGER’I ÇALIŞTIR”ı seçerek onaylayın. SMTP bildirim ayarlarınızın doğru şekilde ayarlandığını doğrulayan bir test e-postası almalısınız.

Konteyner Güncellemesi mi yoksa Sadece Bildirimler mi?
Vermeniz gereken bir sonraki büyük karar, WUD’un nasıl davranmasını istediğinizdir; yalnızca Docker konteynerleriniz için güncellemeler mevcut olduğunda sizi bilgilendirmeli mi, yoksa bunları da otomatik olarak güncellemeli mi?
İşte burada devreye, varsayılan değeri “false” olan “WUD_TRIGGER_DOCKER_{trigger_name}_PRUNE” ayarı giriyor ve bu ayarın nasıl çalıştığını anlamak çok önemli.
“docker-compose.yml” dosyanızın “environment” bölümüne “WUD_TRIGGER_DOCKER_{trigger_name}_PRUNE=true” ifadesini eklemezseniz, WUD yalnızca bildirim modunda çalışır.
Ancak bunu “true” değer ayarıyla eklerseniz, WUD yalnızca sizi bilgilendirmekle kalmayacak, aynı zamanda tüm güncelleme sürecini de üstlenecektir: yeni Docker imajını çekecek, çalışan konteyneri durduracak, eski imajı kaldıracak ve konteyneri güncellenmiş imajla yeniden başlatacaktır; tam otomatik güncelleme modu.
Yani, yalnızca bildirim almak istiyorsanız, bu satırı eklemeyi atlayabilirsiniz—burada söylenecek başka bir şey yok. Ancak otomatik güncellemeleri etkinleştirmek istiyorsanız, “docker-compose.yml” dosyanızdaki “environment” bölümünün altına “WUD_TRIGGER_DOCKER_{trigger_name}_PRUNE=true” ekleyin.Örneğin, bu tetikleyiciyi “LOCAL” olarak adlandırmak istiyorsanız, eklemeniz gereken satır şu şekilde görünecektir:
environment:
...
- WUD_TRIGGER_DOCKER_LOCAL_PRUNE=true
...
Code language: YAML (yaml)
Ve böylece, konteynerlerinizin en son Docker imajlarını çalıştırmasını sağlayan tamamen otomatik bir sürece hazırsınız.
Docker Compose Dosyalarıyla Başa Çıkma
Peki ya Docker Compose dağıtımlarınız sabit kodlu görüntü sürümleri kullanıyorsa ve WUD’a kapsayıcılarınızı otomatik olarak güncellemesini söylediyseniz? Bu noktayı açıklamak için size gerçekten basit bir örnek göstereyim:
services:web:image: nginx:1.27ports:- "80:80"
Code language: YAML (yaml)
Diyelim ki, Nginx 1.28 sürümü yeni düştü. WUD güncellemeyi algılayacak, yeni imajı çekecek ve onu kullanarak konteyneri otomatik olarak yeniden başlatacak. Ancak işler burada biraz çetrefilli hale gelebilir: Bir dahaki sefere dağıtımınızı aşağıdaki gibi bir şey kullanarak manuel olarak yeniden yüklediğinizde:
docker compose down
docker compose up -d
Code language: Bash (bash)
Docker, görüntü sürümü 1.27’ye işaret eden “docker-compose.yml” dosyanızla devam edecek ve konteyneri eski sürümle döndürecek. Tam olarak istediğimiz bu değil, değil mi?
Neyse ki WUD’un bunu halletmenin akıllıca bir yolu var. Docker Compose tetikleyicisi, görüntü etiketini keşfedilen en son WUD ile değiştirerek, “docker-compose.yml” dosyanızı anında otomatik olarak güncelleyebilir. Bu şekilde, yeniden dağıtım yaptığınızda her şey senkronize olur ve kurulumunuz tam olarak şu şekilde görünür:
services:web:image: nginx:1.28ports:- "80:80"
Code language: YAML (yaml)
Bunun işe yaraması için, doğru “docker-compose.yml” dosyasını WUD dağıtımınıza bağlamanız ve “WUD_TRIGGER_DOCKERCOMPOSE_{trigger_name}_FILE” tetikleyicisini kullanmanız gerekir. Örneğin, tetikleyicinize “NGINX” adını verirseniz, pratikte bunun nasıl görüneceği aşağıdadır.
services:whatsupdocker:image: getwud/wud...environment:...- WUD_TRIGGER_DOCKERCOMPOSE_NGINX_FILE=/wud/nginx/docker-compose.yml- WUD_TRIGGER_DOCKERCOMPOSE_NGINX_PRUNE=true...volumes:...- /compose/file/location/docker-compose.yml:/wud/nginx/docker-compose.yml...
Code language: YAML (yaml)
Gördüğünüz gibi, “volumes” bölümünde, gerçek “docker-compose.yml” dosyamızı seçtiğimiz konumdaki WUD konteynerine bağlıyoruz. Sonra, “environment” bölümünde, “WUD_TRIGGER_DOCKERCOMPOSE_NGINX_FILE” değişkenini konteynerin içindeki yoluna ayarlayarak WUD’a bu dosyayı nerede arayacağını söylüyoruz.
Bir sonraki sorunuzu şimdiden duyabiliyorum: İki, üç veya on Docker Compose dağıtımım varsa ne olur? Endişelenmeyin—sadece aşağıdaki deseni izleyerek her biri için ayrı bir tetikleyici oluşturun.
services:
whatsupdocker:
image: getwud/wud
...
environment:
...
- WUD_TRIGGER_DOCKERCOMPOSE_ONE_FILE=/wud/one/docker-compose.yml
- WUD_TRIGGER_DOCKERCOMPOSE_ONE_PRUNE=true
- WUD_TRIGGER_DOCKERCOMPOSE_TWO_FILE=/wud/two/docker-compose.yml
- WUD_TRIGGER_DOCKERCOMPOSE_TWO_PRUNE=true
- WUD_TRIGGER_DOCKERCOMPOSE_THREE_FILE=/wud/three/docker-compose.yml
- WUD_TRIGGER_DOCKERCOMPOSE_THREE_PRUNE=true
...
volumes:
...
- /compose/file/location/one/docker-compose.yml:/wud/one/docker-compose.yml
- /compose/file/location/two/docker-compose.yml:/wud/two/docker-compose.yml
- /compose/file/location/three/docker-compose.yml:/wud/three/docker-compose.yml
...
Code language: YAML (yaml)
Elbette, Compose dağıtımlarınız için “en son” görüntü etiketini kullanıyorsanız yukarıdakilerin hiçbirinin uygulanması gerekmez. Bu durumda, her zaman görüntünün en güncel sürümünü çektiğinizden “docker-compose.yml” dosyasını değiştirmenize gerek yoktur.
Ancak, bir kez daha, işlerin biraz çetrefilli hale geldiği an geldi. WUD kullanıcı arayüzünü açıp her bir konteyner için tetikleyicilere bakarsanız, tatsız bir şekilde şaşırabilirsiniz; hepsi otomatik olarak her konteynere uygulanmıştır.Evet, daha önce oluşturduğumuz Nginx tetikleyicisi her yerde görünüyor, bu kesinlikle aklımızda olan şey değil.

Bu bizi WUD’daki önemli bir kavrama getiriyor: varsayılan olarak tüm tetikleyiciler küreseldir. Bu, WUD’a aksi yönde açıkça bir şey söylemediğiniz sürece oluşturduğunuz herhangi bir tetikleyicinin tüm kapsayıcılara uygulanacağı anlamına gelir.
Neyse ki, bunu kontrol etmenin bir yolu var ve WUD gözlemcisinin etiketlerinin devreye girdiği yer burası. Okumaya devam edin, bir sonraki bölümde çözümü size anlatacağım.
Tetikleyicileri Dahil Etme ve Hariç Tutma
TYukarıdaki sorunun çözümü, konteynerlerinizde etiketler kullanmaktır; WUD’un anladığı ve izleyicilerin eylemlerini konteyner bazında daha hassas bir şekilde ayarlamanıza olanak tanıyan bir şeydir. Yaklaşık bir düzine etiket mevcuttur, ancak biz çoğunlukla “wud.trigger.include” ve “wud.trigger.exclude” ile ilgileniyoruz.
Yukarıda belirtilen ikisinden hiçbiri bir kapsayıcıya açıkça tanımlanmadığında, tüm tetikleyiciler varsayılan olarak her kapsayıcıya uygulanır. Bunu anlamak önemlidir.
Peki, ne yapmaya çalışıyoruz? Bildirim tetikleyicimizin tüm kapsayıcılar için etkin kalmasını istiyoruz, ancak yalnızca Nginx’e özgü tetikleyicinin Nginx kapsayıcısı için çalışmasını istiyoruz. Bunu halletmenin en iyi yolu “wud.trigger.include” etiketini kullanmaktır. Bu, WUD’a yalnızca o belirli kapsayıcı için açıkça listelediğiniz tetikleyicileri uygulamasını ve başka hiçbir şeyi uygulamamasını söyler.
Bu nedenle, Nginx konteyneri için dağıtım dosyasını (“docker-compose.yml”) açacağız, ihtiyacımız olan etiketi ekleyeceğiz ve bu etikete uygulamak istediğimiz tetikleyicileri değerler olarak listeleyeceğiz.
services:web:labels:wud.trigger.include: smtp.gmail,dockercompose.nginximage: nginx:stable-alpine3.21-slimcontainer_name: nginxports:- "80:80"
Code language: YAML (yaml)
Elbette, diğer tüm kapsayıcılarınız için de aynısını yapmanız gerekecektir. Ancak fark, her birinde satırın yalnızca “wud.trigger.include: smtp.gmail” ve WUD’da ayarladığınız kapsayıcıya özgü tetikleyicileri (varsa) içermesi gerektiğidir.
Herhangi bir değişiklik yaptıktan sonra kapsayıcılarınızı yeniden başlatmayı unutmayın. WUD’un kendisini yeniden başlatmaya gerek yoktur; izlediği kapsayıcılardaki değişiklikleri anında otomatik olarak alır.
Şimdi, WUD kullanıcı arayüzüne geri dönersek ve hızlıca bir göz atarsak, Nginx tetikleyicisinin (“dockercompose.nginx”) artık yalnızca o belirli konteynera uygulandığını, Gmail (“smtp.gmail”) bildirim tetikleyicimizin ise diğer herkes tarafından kullanılabildiğini göreceğiz.

WUD Panosundan Tetikleyicileri Başlatma
Varsayılan olarak, aksi belirtilmediği sürece WUD arka planda sessizce çalışır. Ancak birçok durumda, WUD’un bir konteynerin yeni bir sürümü olduğunda beni bilgilendirmesini, otomatik güncellemeye ayarlamasını ancak güncellemeyi yalnızca kullanıcı arayüzünden yeşil ışık yaktıktan sonra uygulamasını sağlamasını en uygun buldum.
Bu şekilde, her iki dünyanın da en iyisini elde edersiniz: birincisi, güncellenen görüntüdeki yenilikleri uygulamadan önce kontrol edebilirsiniz, böylece beklenmedik değişikliklerle karşılaşmazsınız. İkincisi, konteyneri manuel olarak durdurmak ve yeniden dağıtmak için terminale atlama zahmetinden kurtulursunuz.Bunu yapmak için, sadece “WUD_TRIGGER_{trigger_type}_{trigger_name}_AUTO” seçeneğini “false” olarak ayarlayın (varsayılan olarak “true”dur). Bu, karşılık gelen tetikleyicinin otomatik yürütülmesini kapatır.
Açıklamak gerekirse, örnek olarak Nginx dağıtımımızı kullanalım. WUD “docker-compose.yml” dosyanıza, otomatik tetikleyici yürütmeyi devre dışı bırakmak için aşağıdaki satırı ekleyin; böylece uygun gördüğünüzde WUD web kullanıcı arayüzü üzerinden manuel olarak çalıştırabilirsiniz:
services:whatsupdocker:image: getwud/wud...environment:...- WUD_TRIGGER_DOCKERCOMPOSE_NGINX_FILE=/wud/nginx/docker-compose.yml- WUD_TRIGGER_DOCKERCOMPOSE_NGINX_PRUNE=true- WUD_TRIGGER_DOCKERCOMPOSE_NGINX_AUTO=false...volumes:...- /compose/file/location/docker-compose.yml:/wud/nginx/docker-compose.yml...
Code language: YAML (yaml)
Bundan sonra, güncellemeler mevcutsa, WUD panosu bunları gösterecek ve “RUN” (ÇALIŞTIR) düğmesi etkin olacak. Sadece tıklayın ve WUD, Docker imajını güncelleyecek ve konteyneri yeni sürümle otomatik olarak başlatacaktır.

Daha sonra sağ üst köşedeki mavi “ŞİMDİ İZLE” butonuna tıklayarak ekranı yenileyin ve değişikliklerin etkili olduğunu görün.
Konteyneri İzlemeden Hariç Tutma
WUD, belirli kapsayıcıları izlemeden hariç tutmanıza olanak tanır, yani bunları tamamen görmezden gelir ve hiçbir işlem yapmaz. Kurulumu çok kolaydır—kapsayıcının dağıtımına “wud.watch: false” etiketini ekleyin. Örneğin, Nginx kullanıyorsanız, şöyle görünür:
services:web:labels:wud.watch: falseimage: nginx:1.27container_name: nginxports:- "80:80"
Code language: YAML (yaml)
Tam tersi kurulum da mümkündür — WUD’a varsayılan olarak hiçbir konteyneri izlememesini söyleyebilirsiniz. Sadece WUD’un “docker-compose.yml” dosyasında “WUD_WATCHER_LOCAL_WATCHBYDEFAULT=false” değerini ayarlayın. Daha sonra, WUD’un izlemesini istediğiniz her konteyner için “wud.watch=true” etiketini ekleyin.
WUD’da Docker Görüntüleri Etiket İşleme
WUD’u kurarken ele almak istediğim son — ama kesinlikle en önemli — durumlardan biri Docker görüntü etiketlerinin nasıl ele alınacağıdır. Büyük ihtimalle çoğunuz buna benzer dağıtımlar kullanıyorsunuz:
services:web:image: nginx:latestcontainer_name: nginx...
Code language: YAML (yaml)
Bu durumda, “latest” etiketini kullandığınızda, WUD Docker görüntülerini özetlerine göre kontrol eder. Sorun, bunu Docker Hub’a çok sayıda istek göndererek yapmasıdır, bu da hız sınırlarına hızla ulaşabilir.
Bunun ötesinde, genellikle güncellemeler için belirli bir görüntü sürümünü izlemek daha iyi bir fikirdir. WUD, dağıtımınıza doğrudan uygulayabileceğiniz ve WUD’nin hangi etiketleri dikkate alması veya yoksayması gerektiğini kontrol edebileceğiniz iki etiket sunarak bunu kolaylaştırır: “wud.tag.include” ve “wud.tag.exclude”.
Bu etiketlerin aldığı değerler düzenli ifadelerdir. Akılda tutulması gereken en önemli şey, farklı yazılım projelerinin görüntüleri için farklı sürümleme şemaları kullanmasıdır. Bu nedenle, her dağıtımı o görüntü tarafından kullanılan belirli sürümleme stiline uyacak şekilde uyarlamanız gerekir.
Örneğin, “1.27.2” gibi klasik “major.minor.patch” (semver) biçimini görebilirsiniz. Ancak diğer durumlarda, “2025.04.2” veya “1.27.2-alpine” gibi bir şey olabilir; piyasada çok fazla çeşitlilik vardır.Önemli olan, belirli durumunuzda kullanılan biçime uyan bir regex yazmanız gerektiğidir. Dağıtımlarınıza eklemeden önce, beklendiği gibi çalıştığından emin olmak için ifadenizi Regex101 gibi çevrimiçi bir regex doğrulayıcıyla test etmenizi şiddetle tavsiye ederim.
İşte gerçek dünyadan bir örnek. Diyelim ki “major.minor.patch” (“1.27.2” örneğin) sürüm desenini izleyen Nginx Docker görüntülerini izliyoruz. Bu durumda, Docker dağıtımımızdaki düzenli ifade aşağıdaki gibi görünecektir:
services:web:image: nginx:latestcontainer_name: nginxlabels:'wud.tag.include=^\d+\.\d+\.\d+$'...
Code language: YAML (yaml)
Basitçe söylemek gerekirse, bu regex şu anlama gelir: yalnızca semantik versiyonlara benzeyen etiketleri izlemek (örneğin, “1.27.2”). Ancak, izlemek istediğimiz görüntü “1.27.2-alpine” gibi bir şeyse, regex’imiz zaten buna benzer görünmelidir:
services:web:image: nginx:latestcontainer_name: nginxlabels:'wud.tag.include=^\d+\.\d+\.\d+-alpine$'...
Code language: YAML (yaml)
Anladınız sanırım—aynısı “wud.tag.exclude” etiketi için de geçerli. Güncellemeleri kontrol ederken WUD’un atlaması gereken belirli resim sürümlerini açıkça listelemenizi sağlar.
Yazının orijinalini buradan okuyabilirsiniz

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.