Kapsayıcılı uygulamaları herhangi bir dilde dağıtmak için Docker desteğini kullanma

Azure Geliştirici CLI'sı (azd), Docker'ı dil olarak destekleyerek Dockerfile kullanarak oluşturulan ve dağıtılan hizmetleri tanımlamanıza olanak sağlar. Uygulamanız azd'in go, Rust, Ruby, PHP veya Kotlin gibi yerleşik desteği olmayan bir dilde yazılmışsa docker'ı dil olarak kullanarak Azure oluşturabilir ve dağıtabilirsiniz. Docker'ı dil olarak belirterek kapsayıcıya alma işlemi üzerinde tam denetim elde ederek aşağıdakiler için idealdir:

  • Yerleşik azd destek olmadan Go, Rust, Ruby, PHP, Kotlin ve diğer diller
  • Polyglot uygulamaları (örneğin, hem Python hem de Node.jskullanan bir hizmet)
  • Şablonu çalıştırmak için yerel bağımlılıkları azaltmak istediğiniz senaryolar
  • Özel işletim sistemi veya çalışma zamanı gereksinimleri olan iş yükleri
  • Mevcut Docker tabanlı projeleri Azure'a geçirme

Örneğin, Go'da yazılmış bir uygulamanız varsa ve bunu azd ile Azure Container Apps dağıtmak istiyorsanız, Go hizmetiniz için bir Dockerfile tanımlayabilir ve bunu kullanmak için azd yapılandırabilirsiniz.

Docker'ı azure.yaml'de dil olarak yapılandırma

Docker'ı go uygulaması, Rust uygulaması veya başka bir hizmet için kullanmak için dosyanızda azure.yaml özelliğini docker olarak ayarlayın language ve Dockerfile'ınızın yolunu belirtin:

services:
  myservice:
    project: ./src/myservice
    language: docker
    docker:
      path: ./Dockerfile

Bu yapılandırmayla, azd hizmetinizi derlemek ve dağıtmak için belirtilen Dockerfile dosyasını kullanır. Bu yaklaşım kapsayıcılı hale getirilebilen tüm diller veya çalışma zamanları için kullanılabilir.

Örnek senaryo

Başlangıç şablonu, hello-azd Docker'ın uzak derlemelerle birlikte bir dil olarak nasıl kullanılacağını gösterir. azure.yaml Dosyasında, şablon ayarlar language: docker ve belirtirremoteBuild: true:

metadata:
  template: hello-azd-dotnet
name: azd-starter
services:
  web:
    project: ./src
    language: docker
    host: containerapp
    docker:
      path: ./Dockerfile
      remoteBuild: true

Bu yapılandırma, yerel olarak .NET veya Docker yüklü olmasa bile kullanıcıların şablonu çalıştırmasına ve Azure Container Registry'de kapsayıcı görüntüsünü oluşturmasına olanak tanır. Derleme işlemi tamamen bulutta işlenir ve geliştiricilerin yerel bağımlılıkları veya derleme araçlarını ayarlamadan çalışmaya başlamasını kolaylaştırır.

Şablon, hello-azd uzak derlemelerden yararlanarak yerel ortamlarından bağımsız olarak tüm kullanıcılar için tutarlı ve kolaylaştırılmış bir deneyim sağlar.

Sonraki Adımlar