Compreender as imagens da aplicação
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.