Golang Uygulaması Docker Container Olarak Çalıştırılacak

Golang Uygulamasi Docker Container Olarak Calistirilacak



Bu eğitimde, Docker konteyneri olarak çalışacak bir Golang uygulaması kurarak konteynerleştirmenin temellerini öğreneceğiz. Uygulamamızın tüm gereksinimlerini yapılandırmak için Dockerfile ile nasıl çalışacağımızı öğreneceğiz.

Go, basit, güvenilir ve yüksek verimli bir yazılımın geliştirilmesini kolaylaştırma yeteneğiyle tanınan, açık kaynaklı, statik olarak yazılmış ve derlenmiş bir programlama dilidir. Web uygulamaları, bulutta yerel çözümler, komut satırı arayüzleri (CLI'ler) dahil olmak üzere çeşitli uygulamalar oluşturmada fayda sağlar ve şaşırtıcı bir şekilde Docker'ın kendisi bile Go kullanılarak hazırlanmıştır.

Bizim durumumuzda, Go'da basit adımlarla uygulamanın nasıl oluşturulacağını ve Dockerize edileceğini göstermemize olanak tanıyan basit bir HTTP sunucusu oluşturuyoruz.







Gereksinimler:

Bu öğreticiyi takip etmek için aşağıdaki araçlara ihtiyacınız vardır:



  1. Yüklü Go derleyicisi (sürüm 1.21 ve üzeri gereklidir)
  2. Ana makinenizde Docker Engine'i çalıştırma
  3. Go uygulamasını düzenlemek için bir IDE veya metin düzenleyici. Visual Studio veya Vim'i kullanmanızı öneririz
  4. Bash, ZSH, PowerShell vb. gibi bir komut satırı yorumlayıcısı.

Verilen gereksinimler karşılandıktan sonra devam edelim ve uygulamayı nasıl oluşturacağımızı öğrenelim.



Uygulamayı Oluşturma

Bir sonraki adım uygulamamızı oluşturmaktır. Bizim durumumuzda basit bir mesajla yanıt veren basit bir HTTP sunucusu oluşturuyoruz.





Go projesini depolamak için bir dizin oluşturarak başlayın. Uygun herhangi bir ad sağlayabilirsiniz.

$ mkdir go_server

Dizine gidin ve kaynak kodunu saklamak için yeni bir dosya oluşturun. Bizim durumumuzda dosyanın bir Go kaynak kodu olduğunu belirten “main.go” dosyasını çağırıyoruz.



$ dokunmak ana.go

Son olarak dosyayı düzenleyin ve aşağıda gösterildiği gibi kaynak kodunu uygulamaya ekleyin:

ana paket

içe aktarmak (
'fmt'
'net/http'
)

ana işlev ( ) {
// gelen istekleri ele almak
http.HandleFunc ( '/' , işlev ( İçinde http.ResponseWriter, r * http.İstek ) {
// Müşteriye bir yanıt yazın
fmt.Fprintf ( İçinde , 'Docker'dan (:' )
} )

// Bağlantı noktasında HTTP sunucusunu başlatın 8080
fmt.Println ( 'Sunucu şu saatte çalışıyor:8080' )
http.ListenAndServe ( ':8080' , sıfır )
}

Önceki uygulama, 8080 numaralı bağlantı noktasına bağlanan temel bir HTTP sunucusu oluşturur. Sunucu, daha önce tanımlandığı gibi temel bir mesajla yanıt verir.

Uygulamayı Test Etme

Uygulamayı dockerize etmeden önce uygulamanın düzgün çalıştığından emin olalım. Aşağıdaki komutu çalıştırın:

$ git main.go'yu çalıştır

Önceki komut uygulamayı başlatır ve aşağıdaki gibi mesajı döndürür:

Sunucu şu şekilde çalışıyor: 8080

Daha sonra HTTP sunucusunu test etmek için “curl” komutunu aşağıdaki gibi çalıştırabilirsiniz:

$ http'yi kıvırmak: // yerel ana bilgisayar: 8080 /

Önceki komut mesajı aşağıdaki gibi döndürmelidir:

Docker'dan ( : %

Artık sonraki adımlarda tanımlandığı gibi önceki uygulamaya devam edebilir ve dockerize edebiliriz.

Uygulamayı Kapsayıcı Hale Getirmek

Sonraki adımlar, uygulama için bir konteynerin nasıl oluşturulacağını tartışıyor. Proje dizininde Dockerfile’ı oluşturarak başlıyoruz.

$ CD go_server

Herhangi bir uzantısı olmayan Dockerfile adında bir dosya oluşturun ve dosyayı bir metin düzenleyiciyle düzenleyin. Bu dosya, uygulamamız için tüm gereksinimleri aşağıdaki gibi tanımlamamızı sağlar:

$ dokunmak Docker dosyası
$ Çünkü Docker dosyası

Yapılandırmayı aşağıdaki gibi ekleyin:

golang'dan: 1.21

İŞ YÖNÜ / uygulama

KOPYALA . .

ÇALIŞTIR ve main.go'yu oluştur ana .

ORTAYA ÇIKARMAK 8080

CMD [ './ana' ]

Önceki Dockerfile’da uygulamaya ait önceki işlemleri tanımlıyoruz.

  • Temel görüntüyü resmi Golang görüntüsü sürüm 1.21'e ayarlayın.
  • Kapsayıcının içindeki çalışma dizinini “/app” olarak yapılandırın.
  • Proje dizininin tamamını konteynere kopyalıyoruz.
  • Go uygulamasını kapsayıcının içinde oluşturun.
  • Gelen bir HTTP trafiğine izin vermek için 8080 numaralı bağlantı noktasını gösterin.
  • Go uygulamasını çalıştırmak için komutu ayarlayın.

Docker Görüntüsünü Oluşturma

Uygulamanın görüntüsünü oluşturmak için terminali açın ve proje dizinine gidin. Daha sonra görüntüyü oluşturmak için aşağıdaki komutu çalıştırın:

$ sudo Liman işçisi yapısı -T go_server_docker .

go_server_docker'ı uygulama görüntüsüne atamak istediğiniz adla değiştirin.

Docker imajını başarıyla oluşturduktan sonra aşağıdaki komutla bu imajı temel alan bir kapsayıcı çalıştırabilirsiniz:

$ liman işçisi koşusu -P 8080 : 8080 go_server_docker

Önceki komut, ana makinedeki 8080 numaralı bağlantı noktasını kabın içindeki 8080 numaralı bağlantı noktasına eşlemelidir.

Kapsayıcıyı test etmek için aşağıdaki komutu çalıştırın:

$ http'yi kıvırmak: // yerel ana bilgisayar: 8080

Bu, uygulamada tanımlanan mesajı yazdırmalıdır.

Çözüm

Bu eğitimde temel bir Go uygulamasının nasıl oluşturulacağını öğrendik. Ayrıca Dockerfile'da gereksinimleri tanımlayarak, konteynerden imaj oluşturarak ve konteyneri imajdan çalıştırarak uygulamanın nasıl konteynerize edileceğini öğrendik.