Compreender as imagens da aplicação

Concluído

Uma imagem em contêiner é uma parte essencial de qualquer aplicativo distribuído que usa o Serviço Kubernetes do Azure (AKS). Você pode usar tags para:

  • Crie imagens de contêiner diferentes que você precisa.
  • Armazene suas imagens em um registro de contêiner.
  • Implante uma imagem marcada específica.

Nesta unidade, você explora como seu pipeline de CI/CD usa imagens de aplicativos marcados.

Imagens de contentor

Uma imagem de contêiner é um pacote de software executável que encapsula um aplicativo e todas as suas dependências de software. Este módulo usa uma imagem de contêiner do Docker para criar o aplicativo de site da Contoso.

A imagem do Docker contém o código do aplicativo e todas as dependências necessárias para criar uma imagem totalmente executável do aplicativo. A imagem do contêiner é configurada por um Dockerfile que tem um conjunto de instruções para o tempo de execução do contêiner.

Se você olhar para o Dockerfile na raiz da sua bifurcação, verá que a imagem começa usando outra imagem nginx como base. Em vez de começar do zero, é comum começar com outras imagens que tenham os arquivos que você precisa.

Você cria uma imagem de um Dockerfile usando o docker build comando.

Importante

O docker build comando não funciona no ambiente do Cloud Shell, porque o uso do Docker dentro de um contêiner em execução não é permitido. Se você quiser testar o comando, clone o repositório localmente e execute o docker build . comando usando sua própria instalação do Docker.

Tags de imagens

As etiquetas são um aspeto importante do trabalho com imagens de contentor. As tags podem indicar o tipo de imagem e diferenciar entre várias imagens que têm o mesmo nome.

Por exemplo, se desejar que a imagem .js nó em um repositório comece a partir do nó 12, você pode incluir a tag FROM node:12 no Dockerfile. Se quiser começar na versão estável mais recente, poderá utilizar a etiqueta FROM node:current. As tags indicam o tipo de imagem e o que se espera que ela faça.

A criação de uma imagem de contêiner usa a mesma técnica da criação de um repositório GitHub, e o caminho do contêiner do Docker geralmente é algo como repository/image-name. Mas você pode criar várias versões da mesma imagem que usam tags para distingui-las.

Neste módulo, você usa tags para rotular versões de lançamento. Você cria uma tag para cada versão de produção usando v*.*.* regras de controle de versão semânticas, como v1.0.0 para a versão 1.0.0. Cada push marcado para a ramificação principal gera uma nova tag de imagem com o mesmo nome da tag nesse push. Pushes não marcados geram apenas a latest tag.

Todos os pushes, marcados e não marcados, atualizam a latest imagem com o código mais recente e implantam-na na preparação. As imagens marcadas com v* também são implantadas na produção. Apenas imagens oficiais marcadas são implantadas na produção, enquanto os ambientes de encenação e produção sempre têm a latest imagem encenada.

Registos de contentor

Um aspeto importante de trabalhar com uma imagem é onde ela está armazenada. Um registro de contêiner é um local para armazenar arquivos de imagem em contêineres. Por exemplo, o GitHub é um registro de contêiner que também armazena alterações de código e versões. Você pode enviar novas imagens de aplicativo para registros de contêiner usando o docker push comando.

Neste módulo, você armazena arquivos de imagem do aplicativo na instância do Registro de Contêiner do Azure criada na unidade anterior. Depois de criar um PAT (Personal Access Token) e emitir um certificado federado para autenticar com o GitHub e o Azure, o pipeline essencialmente automatiza os docker build comandos e docker push .

Agora que você entende os pipelines de CI/CD e as imagens de contêiner marcadas, prossiga para a próxima unidade para começar a criar seu pipeline de CI/CD do GitHub Actions.

Verifique o seu conhecimento

1.

O que é uma imagem do Docker?

2.

Como um pipeline de CI/CD pode usar tags de imagem?