Informacje o aktualizacjach obrazu podstawowego dla usługi ACR Tasks

Ten artykuł zawiera podstawowe informacje o aktualizacjach obrazu podstawowego aplikacji oraz o tym, jak te aktualizacje mogą wyzwalać zadanie usługi Azure Container Registry.

Co to są obrazy podstawowe?

Pliki Dockerfile definiujące większość obrazów kontenerów określają obraz nadrzędny, z którego jest oparty obraz, często określany jako obraz podstawowy. Obrazy podstawowe przeważnie zawierają system operacyjny, na przykład Alpine Linux lub Windows Nano Server, w którym są stosowane pozostałe warstwy kontenera. Mogą również zawierać platformy aplikacji, takie jak Node.js lub .NET Core. Te obrazy podstawowe są zwykle oparte na publicznych nadrzędnych obrazach. Kilka obrazów aplikacji może współdzielić wspólny obraz podstawowy.

Obraz podstawowy jest często aktualizowany przez element utrzymujący obrazu w celu uwzględnienia nowych funkcji lub ulepszeń systemu operacyjnego lub platformy w obrazie. Poprawki zabezpieczeń są kolejną typową przyczyną aktualizacji obrazu podstawowego. Po wystąpieniu tych aktualizacji nadrzędnych należy również zaktualizować obrazy podstawowe, aby uwzględnić poprawkę krytyczną. Następnie należy ponownie skompilować każdy obraz aplikacji, aby uwzględnić te poprawki nadrzędne uwzględnione w obrazie podstawowym.

W niektórych przypadkach, takich jak prywatny zespół deweloperów, obraz podstawowy może określać więcej niż system operacyjny lub strukturę. Na przykład obraz podstawowy może być obrazem składnika usługi udostępnionej, który musi być śledzony. Członkowie zespołu mogą potrzebować śledzenia tego obrazu podstawowego na potrzeby testowania lub regularnie aktualizować obraz podczas tworzenia obrazów aplikacji.

Obsługa kopii obrazów podstawowych

W przypadku dowolnej zawartości w rejestrach, które zależą od podstawowej zawartości przechowywanej w rejestrze publicznym, takim jak Docker Hub, zalecamy skopiowanie zawartości do rejestru kontenerów platformy Azure lub innego rejestru prywatnego. Następnie upewnij się, że tworzysz obrazy aplikacji, odwołując się do prywatnych obrazów bazowych. Usługa Azure Container Registry zapewnia możliwość importowania obrazów w celu łatwego kopiowania zawartości z publicznych rejestrów lub innych rejestrów kontenerów platformy Azure. W następnej sekcji opisano używanie usługi ACR Tasks do śledzenia aktualizacji obrazu podstawowego podczas tworzenia aktualizacji aplikacji. Aktualizacje obrazów podstawowych można śledzić we własnych rejestrach kontenerów platformy Azure i opcjonalnie w nadrzędnych rejestrach publicznych.

Śledzenie aktualizacji obrazu podstawowego

Usługa ACR Tasks oferuje możliwość automatycznego kompilowania obrazów podczas aktualizacji obrazu podstawowego kontenera. Za pomocą tej funkcji można obsługiwać i aktualizować kopie publicznych obrazów bazowych w rejestrach kontenerów platformy Azure, a następnie ponownie kompilować obrazy aplikacji, które są zależne od obrazów bazowych.

Usługa ACR Tasks dynamicznie odnajduje zależności obrazu podstawowego podczas tworzenia obrazu kontenera. W związku z tym może wykryć, kiedy obraz podstawowy obrazu aplikacji jest aktualizowany. W przypadku jednego wstępnie skonfigurowanego zadania kompilacji usługa ACR Tasks może automatycznie ponownie skompilować każdy obraz aplikacji odwołujący się do obrazu podstawowego. Dzięki temu automatycznemu wykrywaniu i ponownemu kompilowaniu usługa ACR Tasks pozwala zaoszczędzić czas i nakład pracy zwykle wymagany do ręcznego śledzenia i aktualizowania każdego obrazu aplikacji odwołującego się do zaktualizowanego obrazu podstawowego.

Lokalizacje obrazów podstawowych

W przypadku kompilacji obrazu z pliku Dockerfile zadanie usługi ACR wykrywa zależności na obrazach bazowych w następujących lokalizacjach:

  • Ten sam rejestr kontenerów platformy Azure, w którym jest uruchamiane zadanie
  • Inny prywatny rejestr kontenerów platformy Azure w tym samym lub innym regionie
  • Publiczne repozytorium w usłudze Docker Hub
  • Publiczne repozytorium w usłudze Microsoft Container Registry

Jeśli obraz podstawowy określony w FROM instrukcji znajduje się w jednej z tych lokalizacji, zadanie usługi ACR dodaje punkt zaczepienia, aby upewnić się, że obraz zostanie ponownie skompilowany za każdym razem, gdy jego baza zostanie zaktualizowana.

Powiadomienia o obrazie podstawowym

Czas między aktualizacją obrazu podstawowego a wyzwoleniem zadania zależnego zależy od lokalizacji obrazu podstawowego:

  • Obrazy podstawowe z publicznego repozytorium w usłudze Docker Hub lub MCR — w przypadku obrazów podstawowych w repozytoriach publicznych zadanie usługi ACR sprawdza aktualizacje obrazów w losowym przedziale od 10 do 60 minut. Zadania zależne są uruchamiane odpowiednio.
  • Obrazy podstawowe z rejestru kontenerów platformy Azure — w przypadku obrazów podstawowych w rejestrach kontenerów platformy Azure zadanie usługi ACR natychmiast wyzwala przebieg po zaktualizowaniu obrazu podstawowego. Obraz podstawowy może znajdować się w tym samym rekordzie ACR, w którym zadanie jest uruchamiane lub w innym usłudze ACR w dowolnym regionie.

Uwagi dodatkowe

  • Obrazy podstawowe obrazów aplikacji — obecnie zadanie usługi ACR śledzi tylko aktualizacje obrazów podstawowych dla obrazów aplikacji (środowiska uruchomieniowego). Nie śledzi aktualizacji obrazu podstawowego dla obrazów pośrednich (buildtime) używanych w wieloetapowych plikach Dockerfile.

  • Włączone domyślnie — po utworzeniu zadania usługi ACR za pomocą polecenia az acr task create domyślnie zadanie jest włączone dla wyzwalacza przez aktualizację obrazu podstawowego. Oznacza to, że właściwość jest ustawiona base-image-trigger-enabled na true. Jeśli chcesz wyłączyć to zachowanie w zadaniu, zaktualizuj właściwość na False. Na przykład uruchom następujące polecenie az acr task update :

    az acr task update --registry myregistry --name mytask --base-image-trigger-enabled False
    
  • Wyzwalacz do śledzenia zależności — aby umożliwić zadaniu usługi ACR określanie i śledzenie zależności obrazu kontenera — które obejmują jego obraz podstawowy — należy najpierw wyzwolić zadanie, aby skompilować obraz co najmniej raz. Na przykład wyzwól zadanie ręcznie przy użyciu polecenia az acr task run .

  • Stabilny tag obrazu podstawowego — aby wyzwolić zadanie w ramach aktualizacji obrazu podstawowego , obraz podstawowy musi mieć stabilny tag, taki jak node:9-alpine. Ten tagowanie jest typowe dla obrazu podstawowego, który jest aktualizowany przy użyciu poprawek systemu operacyjnego i struktury do najnowszej stabilnej wersji. Jeśli obraz podstawowy zostanie zaktualizowany przy użyciu nowego tagu wersji, nie wyzwoli zadania. Aby uzyskać więcej informacji na temat tagowania obrazów, zobacz wskazówki dotyczące najlepszych rozwiązań.

  • Inne wyzwalacze zadań — w zadaniu wyzwalanym przez aktualizacje obrazu podstawowego można również włączyć wyzwalacze na podstawie zatwierdzenia kodu źródłowego lub harmonogramu. Aktualizacja obrazu podstawowego może również wyzwolić zadanie wieloetapowe.

Następne kroki

Zobacz następujące samouczki dotyczące scenariuszy automatyzowania kompilacji obrazów aplikacji po zaktualizowaniu obrazu podstawowego: