Docker Compose ve Nginx ile Web Sitesi Yayına Almak

Web sitelerinin birçoğu statik dosyalardan oluşuyor. Özellikle statik web sayfası üretici uygulamalar (Hugo, Jekyll gibi), birkaç sayfadan oluşan web siteleri, dinamik sitelerin de statik bölümleri sunulması gereken yapıları ortaya çıkarıyor. Bu tür durumlarda uygulamaların rahatça yayına alınabilmesi, port ve diğer ağ ayarları, güncellemesi gibi süreçler zaman almaya başlayabiliyor. Bu yazıda, böyle bir web sitesinin birkaç saniye içerisinde nasıl yayına alınacağını göreceğiz.

Docker Compose yerine Docker’ın komut satırını kullanarak bir web sayfasını yayına almak için ilgili yazıdan faydalanabilirsiniz.

Örnek Web Sayfası Hazırlamak

Örnek bir web sayfası elde edebilmek için, birkaç satırlık bir HTML dosyası oluşturacağız. Bu dosyayı da, oluşturacağımız bir dizin içerisine yerleştireceğiz. Elinizde halihazırda yayına almak istediğiniz bir uygulama varsa, bu aşamayı atlayabilirsiniz.

Önce dizin oluşturarak başlayalım:

$ mkdir ~/websitesi
$ cd ~/websitesi

Artık dizin içerisinde bir index.html dosyası oluşturabiliriz:

<html>
<body>
  <h1>Peptr Blog</h1>
</body>
</html>

Docker Compose ile Yayına Almak

Hazırladığımız örnek sayfası, Docker Compose ile yayına almak için YAML formatında hazırlanmış bir dosya oluşturalım. Bu dosyanın ismi, genellikle docker-compose.yml olarak veriliyor. Yine de, istersek farklı dosya isimleri de kullanabiliriz. İçeriği docker-compose.yml olarak kaydedelim:

version: "3.5"

services:
  web:
    image: nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - $PWD:/usr/share/nginx/html

Dosyayı kaydettikten sonra, Docker Compose ile çalıştırmak için, docker-compose up komutunu kullanmak yeterli:

$ docker-compose up
Pulling web (nginx:)...
latest: Pulling from library/nginx
Recreating websitem_web_1 ... done
Attaching to websitem_web_1

Son satırın ardından, artık web sitesine bağlanabiliriz. Şöyle bir ekran görmeliyiz:

Giriş yaptığımızda logların da terminal ekranında aktığını görmemiz gerekiyor. Yalnız bu haliyle terminal ekranını kapatırsak, uygulama da pek ayakta duramayacak. Durdurmak istersek de CTRL+C‘yi kullanabiliriz.

Docker Compose’u Arkaplanda Çalıştırmak

Bir önceki bölümde, Docker Compose ile web sitesini yayına aldık. Ancak uygulamayı arkaplanda çalıştırmadık ve bunun sonucu olarak komut satırını kapattığımızda uygulamanın da kapanmasına sebep olabilecek bir yere kadar ulaştık. Uygulamayı arkaplanda çalıştırmak istersek, aynı komutu -d parametresiyle çalıştırmamız yeterli. Bu parametre, detach anlamına geliyor. Yani arkaplanda çalıştırmak istediğimizi bu şekilde söylüyoruz:

$ docker-compose up -d
Starting websitem_web_1 ... done

Leave a comment