Personalização da imagem de compilação - AWS Amplify Hospedagem

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Personalização da imagem de compilação

É possível usar uma imagem de compilação personalizada para fornecer um ambiente de compilação personalizado para um aplicativo Amplify. Se você tiver dependências específicas que levam muito tempo para instalar durante uma compilação usando o contêiner padrão do Amplify, poderá criar sua própria imagem do Docker e fazer referência a ela durante uma compilação. As imagens podem ser hospedadas no Amazon Elastic Container Registry público.

Para que uma imagem de compilação personalizada funcione como uma imagem de compilação do Amplify, ela deve atender aos requisitos a seguir.

Requisitos de imagens de compilação personalizadas

  1. Uma distribuição Linux que suporta a GNU C Library (glibc), como a Amazon Linux, compilada para a arquitetura x86-64.

  2. cURL: quando ativamos sua imagem personalizada, baixamos o executor de compilação para o contêiner e, portanto, exigimos que cURL esteja presente. Se essa dependência estiver ausente, a compilação falha instantaneamente sem nenhuma saída, pois o executor de compilação não é capaz de produzir nenhuma saída.

  3. Git: para clonar o repositório Git, exigimos que Git seja instalado na imagem. Se essa dependência estiver ausente, a etapa Clonar repositório falhará.

  4. OpenSSH: para clonar seu repositório com segurança, é necessário que o OpenSSH configure a chave SSH temporariamente durante a compilação. O pacote OpenSSH fornece os comandos que o executor de compilação precisa para fazer isso.

  5. Bash e The Bourne Shell: esses dois utilitários são usados para executar comandos durante a compilação. Se eles não estiverem instalados, suas compilações poderão falhar antes de serem iniciadas.

  6. Node.JS+NPM: nosso executor de compilação não instala o Node. Em vez disso, ele depende da instalação do nó e do NPM na imagem. Isso é necessário apenas para compilações que exigem pacotes NPM ou comandos específicos de Node. No entanto, é altamente recomendável instalá-los porque, quando estão presentes, o executor de compilação do Amplify pode usar essas ferramentas para melhorar a execução da compilação. O recurso de substituição de pacote do Amplify usa o NPM para instalar o pacote com extensão Hugo quando você define uma substituição para o Hugo.

Os pacotes a seguir não são obrigatórios, mas sua instalação é altamente recomendada.

  1. NVM (Node Version Manager): recomendamos que você instale esse gerenciador de versões se precisar administrar versões diferentes do Node. Quando você define uma substituição, o recurso de substituição de pacote do Amplify usa NVM para alterar as versões do Node.js antes de cada compilação.

  2. Wget: o Amplify pode usar o utilitário Wget para baixar arquivos durante o processo de compilação. Recomendamos que você o instale em sua imagem personalizada.

  3. Tar: o Amplify pode usar o utilitário Tar para descompactar arquivos baixados durante o processo de compilação. Recomendamos que você o instale em sua imagem personalizada.

Configuração de uma imagem de compilação personalizada para uma aplicação

Use o procedimento a seguir para configurar uma imagem de compilação personalizada para uma aplicação no console do Amplify.

Para configurar uma imagem de compilação personalizada hospedada no Amazon ECR
  1. Consulte Conceitos básicos no Guia do usuário público do Amazon ECR para configurar um repositório público do Amazon ECR com uma imagem do Docker.

  2. Faça login no AWS Management Console e abra o console do Amplify.

  3. Escolha o aplicativo para o qual você quer configurar uma imagem de compilação personalizada.

  4. No painel de navegação, escolha Hospedagem, Configurações de compilação.

  5. Na página Configurações da compilação, na seção Configurações da compilação de imagem, escolha Editar.

  6. Na página Editar configurações de imagem da compilação, expanda o menu Imagem de compilação e escolha Imagem de compilação personalizada.

  7. Insira o nome do repositório público do Amazon ECR criado na Etapa 1. É aqui que sua imagem de compilação é hospedada. Por exemplo, se o nome do seu repositório for ecr-examplerepo, você digitaria public.ecr.aws/xxxxxxxx/ecr-examplerepo.

  8. Escolha Salvar.

Uso de versões específicas de pacotes e dependências na imagem de compilação

As atualizações de pacote ao vivo possibilitam que você especifique versões de pacotes e dependências para uso na imagem de compilação padrão do Amplify. A imagem de compilação padrão é fornecida com vários pacotes e dependências pré-instalados (por exemplo, Hugo, CLI do Amplify, Yam etc.). Com atualizações de pacote ao vivo, é possível substituir a versão dessas dependências e especificar uma versão específica ou garantir que a versão mais recente esteja sempre instalada.

Se as atualizações de pacote ao vivo estiverem habilitadas, antes que a compilação seja executada, o executor de compilação primeiro atualiza (ou faz downgrade) as dependências especificadas. Isso aumenta o tempo de compilação proporcional ao tempo necessário para atualizar as dependências, mas o benefício é que é possível garantir que a mesma versão de uma dependência seja usada para criar o aplicativo.

Atenção

A definição da versão do Node.js como a mais recente fará com que as compilações falhem. Em vez disso, você deverá especificar uma versão exata do Node.js, como 18, 21.5 ou v0.1.2.

Para configurar atualizações de pacote ao vivo
  1. Faça login no AWS Management Console e abra o console do Amplify.

  2. Escolha o aplicativo para o qual você quer configurar as atualizações de pacotes ao vivo.

  3. No painel de navegação, escolha Hospedagem, Configurações de compilação.

  4. Na página Configurações da compilação, na seção Configurações da compilação de imagem, escolha Editar.

  5. Na página Editar configurações de imagem de compilação, na lista de Atualizações de pacotes ao vivo, escolha Adicionar novo.

  6. Em Pacote, selecione a dependência a ser substituída.

  7. Em Versão, mantenha a versão padrão mais recente ou insira uma versão específica da dependência. Se você usar mais recente, a dependência sempre será atualizada para a versão mais recente disponível.

  8. Escolha Salvar.