Hızlı Başlangıç: Görüntü oluşturma

Azure Pipelines

Kullanmaya başlayın oluşturmak için Azure Pipelines kullanarak kapsayıcı görüntüleriyle birlikte kullanın. Görüntü oluşturmak için tek ihtiyacınız olan depoda bir Dockerfile dosyası oluşturmaktır.

İşlem hattında hangi aracıyı kullandığınıza bağlı Windows linux ve Windows kapsayıcıları da derlemeniz gerekir. Bir görüntü derlemeden sonra bunu Azure Container Registry, Docker Hub ve Google Container kayıt defterine itebilirsiniz. Kapsayıcı kayıt defterleri ile görüntü itme hakkında daha fazla bilgi edinmek için bkz. görüntü anından itme.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir hesap oluşturun.
  • GitHub hesabı. Yoksa ücretsiz olarak kaydol.
  • Dockerfile GitHub depo. Kullanabileceğiniz bir depo yoksa, örnek uygulama ve Dockerfile içeren bu deponun için bir fork alın:
    https://github.com/MicrosoftDocs/pipelines-javascript-docker
    

Linux veya Windows oluşturma

  1. Azure DevOps oturum açma ve projenize gidin.

  2. Pipelines'agidin ve Yeni İşlem Hattı'ı seçin.

  3. Kaynak GitHub konumu olarak kaynak kodunuzu seçin ve sonra da depoyu seçin.

    Not

    Oturum açmanız için GitHub yönlendirilmesine neden olabilir. Öyleyse, kimlik bilgilerinizi GitHub girin. Azure Pipelines uygulamasını yüklemek için GitHub yönlendirebilirsiniz. Öyleyse Onayla'yi seçin ve yükleyin.

  4. Başlangıç işlem hattı'ı seçin. azure-pipelines.yml içeriğini bu kodla değiştirin. Bir Linux uygulaması kullanıyorsanız, için ubuntu-1604vmImage kullanın. Bu, sizin windows-latest için vmImage Windows.

            trigger:
            - main
    
            pool:
              vmImage: 'ubuntu-latest' # set to windows-latest or another Windows vmImage for Windows builds
    
            variables:
              imageName: 'pipelines-javascript-docker'
    
            steps:
            - task: Docker@2
              displayName: Build an image
              inputs:
                repository: $(imageName)
                command: build
                Dockerfile: app/Dockerfile
    

    Windows kapsayıcı görüntüleri Microsoft tarafından barındırılan Windows aracıları veya Windows platformu tabanlı kendi kendine barındırılan aracılar kullanılarak (Tüm Microsoft tarafından barındırılan Windows platform tabanlı aracılar Moby altyapısı ve Docker derlemeleri için gereken istemci ile birlikte gönderilir). Linux kapsayıcı görüntüleri, Microsoft tarafından barındırılan Ubuntu aracıları veya Linux platformu tabanlı kendi kendine barındırılan aracılar kullanılarak kullanılabilir. Microsoft tarafından barındırılan aracılarla Windows linux aracısı seçenekleri hakkında daha fazla bilgi edinmek için kullanın.

    Not

    Şu anda Microsoft tarafından barındırılan MacOS aracıları kapsayıcı görüntüleri oluşturmak için kullanılamaz çünkü görüntüleri oluşturmak için gereken Moby altyapısı bu aracılara önceden yüklenmez.

  5. Kaydet ve çalıştır’ı seçin. Depoya eklerken işleme iletisi ekleme azure-pipelines.yml istemini alırsınız. İletiyi düzenleyin ve kaydet'i seçin ve işlem hattının nasıl çalıştırlı olduğunu görmek için yeniden çalıştırın.

    İpucu

    Görüntüyü Azure Container Registry'a veya Google Container Registry veya Docker Hub gibi diğer kapsayıcı kayıt defterlerini Container Registry hakkında daha fazla Docker Hub. Yukarıdaki örnekte kullanılan Docker görevi hakkında daha fazla bilgi alın. Önerilen Docker görevini kullanmak yerine docker komutlarını doğrudan bir komut satırı görevi (betik) kullanarak çağırmak damümkündür

Kaynakları temizleme

Bu uygulamayı kullanmaya devam edecek değilken işlem hattınızı ve kod deposunu silin.

SSS

Barındırılan aracılarda hangi önceden önbelleğe alınmış görüntüler kullanılabilir?

Yaygın olarak kullanılan bazı görüntüler, her iş için kapsayıcı kayıt defterinden bu görüntüleri çekmek için uzun zaman aralıklarından kaçınmak için Microsoft tarafından barındırılan aracılarda önceden önbelleğe alınmışlardır. Önceden önbelleğe alınmış görüntülerin listesi, azure-pipelines-image-generation deposunun sürüm notlarında mevcuttur.

Nasıl yaparım? derlemelerim için BuildKit değişkenlerini ayarlay musunuz?

BuildKit performans, depolama yönetimi, özellik işlevselliği ve güvenlik alanlarında derleme geliştirmeleri sunar. BuildKit tabanlı docker derlemelerini etkinleştirmek için DOCKER_BUILDKIT ayarlayın.

trigger:
- main
   
pool:
  vmImage: 'ubuntu-latest'
   

variables:
  imageName: 'pipelines-javascript-docker'
  DOCKER_BUILDKIT: 1
    
steps:
- task: Docker@2
  displayName: Build an image
  inputs:
    repository: $(imageName)
    command: build
    Dockerfile: app/Dockerfile

Not

BuildKit şu anda tek bir konakta Windows değildir.

Kendinden konak aracıyı nasıl kullanabilirim?

Kapsayıcı görüntüsü oluşturmadan önce docker'ın kendi kendine barındırılan makinenize yüklenmiş olması gerekir. Docker yükleyici görevini işlem hattınıza, görüntülerinizi derlemek için docker görevine ekleyin.

Docker görevini kullanmak yerine betik tabanlı Docker derlemesi nasıl oluşturabilirim?

komutunu (veya başka build bir Docker komutunu) kullanabilirsiniz.

docker build -f Dockerfile -t foobar.azurecr.io/hello:world .

Bu komut, Docker göreviyle bir görüntüyle eşdeğer bir görüntü oluşturur. Docker görevi, bir betikte Docker ikili dosyasını dahili olarak çağırarak birkaç komutu daha bir araya çağırarak birkaç avantaj daha sunar. Docker görevi belgelerinde daha fazla bilgi edinebilirsiniz.

Derlemeler sırasında katman önbelleğe alma özelliğini yeniden Azure Pipelines?

Microsoft tarafından barındırılan aracıların geçerli tasarımında, her iş yeni sağlanan bir sanal makineye gönderilir (azure-pipelines-image-generation repository şablonlarından oluşturulan görüntüye göre). Bu sanal makineler, iş tamamlandıktan sonra temizlenir, kalıcı olmaz ve bu nedenle sonraki işler için yeniden kullanılamaz. Sanal makinelerin kısa ömürlü yapısı, önbelleğe alınmış Docker katmanlarının yeniden kullanılmasına engel olur.

Ancak, kısa ömürlü yaşam süresi sorunu bu aracılar için geçerli olduğundan docker katmanlarını kendi içinde barındırılan aracılarla önbelleğe alınabilirsiniz.

x64 dışında mimariler için Linux kapsayıcı görüntüleri nasıl derlir?

Microsoft tarafından barındırılan Linux aracılarını kullanarak x64 mimarisi için Linux kapsayıcı görüntüleri oluşturabilirsiniz. Diğer mimarilere (örneğin x86 veya ARM) yönelik görüntüler oluşturmak için QEMUgibi bir makine öykünücüsü kullanabilirsiniz. Aşağıdaki adımlar QEMU kullanarak ARM kapsayıcı görüntüsü oluşturma adımlarını göstermektedir:

  1. Dockerfile dosyanızı hedef mimariyle eşleşen bir temel görüntüyle yazma:

    FROM arm64v8/alpine:latest
    
  2. Görüntüyü derlemeden önce işinize aşağıdaki betiği çalıştırın:

    # register QEMU binary - this can be done by running the following image
    docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    # build your image
    

Daha fazla bilgi için bkz. Qemu-user-static GitHub.

Kapsayıcılı uygulamalar için testleri çalıştırma ve test sonuçlarını yayımlama

Kapsayıcılı uygulamaları test etme ve sonuçta elde edilen test sonuçlarını yayımlamayla ilgili farklı seçenekler için Yayımlama Test Sonuçları bakın.

Sonraki adımlar

Kapsayıcı kayıt defterine görüntü itme hakkında bilgi edinmek için sonraki makaleye ilerleyin.