Come posso risolvere l'errore “errore nel tirare la configurazione dell'immagine: toomanyrequests” quando utilizzo immagini Docker in AWS CodeBuild?
Voglio risolvere l'errore “errore nel tirare la configurazione dell'immagine: toomanyrequests” che ricevo quando utilizzo immagini Docker in AWS CodeBuild.
Breve descrizione
Se utilizzi immagini Docker in CodeBuild, puoi provare la limitazione quando estrai i layer dal repository pubblico DockerHub.
Per risolvere l'errore che ricevi quando si verifica la limitazione, devi configurare CodeBuild per autenticare i layer pull utilizzando le credenziali del tuo account DockerHub.
Importante: Per completare i seguenti passaggi, devi disporre di un account DockerHub e del nome utente e della password del tuo account.
Risoluzione
Archivia le tue credenziali DockerHub con AWS Secrets Manager
-
Apri la console di AWS Secrets Manager.
-
Scegli Memorizza un nuovo segreto.
-
Nella sezione Seleziona il tipo di segreto, scegli Altro tipo di segreto.
-
Nella sezione Specificare le coppie chiave/valore da memorizzare in questa sezione segreta, scegli la scheda Chiave/valore segreto.
-
Nella prima casella di testo, inserisci il nome utente. Nella seconda casella di testo, inserisci il tuo nome utente DockerHub. Quindi, scegli Aggiungi riga.
-
Nella prima casella di testo della nuova riga, inserisci la password. Nella seconda casella di testo, inserisci la tua password DockerHub. Quindi, scegli Aggiungi riga.
-
Scegli Avanti.
-
In Nome segreto, inserisci un nome per il tuo segreto. Ad esempio: dockerhub
-
Scegli Avanti.
-
Verificare che sia selezionata l'impostazione predefinita per ** Disabilita rotazione automatica**.
-
Scegli Avanti.
-
Scegli Store.
-
Nella colonna Nome segreto, scegli il tuo segreto.
-
Nella sezione Dettagli segreti, annota l'Amazon Resource Name (ARN) per Secret ARN.
Nota: Se hai creato un segreto configurato con una chiave di crittografia gestita dal cliente, devi aggiungere le autorizzazioni per l'azione KMS:Decrypt utilizzando la chiave configurata.
Risolvi le limitazioni che si verificano nella fase di PROVISIONING
-
Apri la console CodeBuild.
-
Nel riquadro di navigazione, scegli Costruisci, quindi scegli** Costruisci progetti**.
-
Scegli il tuo progetto di costruzione.
-
Scegli Modifica, quindi scegli Ambiente.
-
Scegli Sostituisci immagine.
-
Per Nuova immagine di ambiente, scegli Immagine personalizzata.
-
Per Tipo di ambiente, seleziona la tua immagine personalizzata.
-
Per Registro immagini, scegli Altro registro.
-
Per l'URL del registro esterno, inserisci il nome della tua immagine Docker.
-
Per ** Credenziali del registro**, inserisci l'ARN segreto che hai annotato in precedenza.
-
Scegli Aggiorna ambiente.
Risolvi le limitazioni che si verificano in altre fasi
Importante: Devi concedere ad AWS Identity and Access Management (IAM) le autorizzazioni per il ruolo del servizio CodeBuild per accedere al segreto.
-
Apri la console CodeBuild.
-
Nel riquadro di navigazione, scegli Costruisci, quindi scegli Costruisci progetti.
-
Scegli il tuo progetto di costruzione.
-
Scegli la scheda Dettagli della costruzione.
-
Nella sezione ** Ambiente**, per Ruolo servizio, scegli il ruolo di servizio ARN. Si apre la console IAM.
-
Nella scheda ** Autorizzazioni**, scegli ** Aggiungi politica in linea**.
-
Scegli la scheda ** JSON**.
-
Sostituisci il codice dell'editor di testo con la seguente politica IAM:
**Nota:**Sostituisci **YOUR\ _SECRET\ _ARN ** con l'ARN segreto che hai notato in precedenza.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "YOUR_SECRET_ARN*" ] } ] }
-
Scegli Politica di revisione.
-
In Nome, inserisci un nome per la politica. Ad esempio: ** dockerhub\ _secret\ _access** Nota: Puoi scegliere qualsiasi nome per la polizza. Il nome è solo per riferimento futuro.
-
Scegli Crea politica.
Configura CodeBuild per recuperare il segreto
-
Apri la console CodeBuild.
-
Nel riquadro di navigazione, scegli Costruisci, quindi scegli Costruisci progetti.
-
Scegli il tuo progetto di costruzione.
-
Scegli Modifica, quindi scegli Ambiente.
-
Espandi la sezione Configurazione aggiuntiva.
-
Per aggiungere variabili di ambiente, nella sezione Variabili di ambiente, per Nome, inserisci DOCKERHUB\ _USERNAME.
-
In Valore, inserisci il nome del tuo segreto, seguito da**:usename**. Ad esempio: dockerhub:username
-
Per Tipo, scegli Secrets Manager.
-
Per aggiungere la variabile di ambiente successiva, scegli Aggiungi variabile di ambiente.
-
Per Nome, inserisci DOCKERHUB\ _PASSWORD.
-
In Valore, inserisci il nome del tuo segreto, seguito da :password. Ad esempio: dockerhub:password
-
Per Tipo, scegli Secrets Manager.
-
Scegli Aggiorna ambiente.
-
Modifica il tuo buildspec e aggiungi il seguente comando prima di eseguire qualsiasi altra azione Docker:
echo "${DOCKERHUB_PASSWORD}" | docker login -u "${DOCKERHUB_USERNAME}" --password-stdin
Avvertenza: Questo comando può registrare i dettagli del nome utente e della password di accesso docker nei log di compilazione. Dopo aver risolto l'errore dell'acceleratore, reimposta la password docker.
Ad esempio:
version: 0.2 phases: install: commands: - echo "${DOCKERHUB_PASSWORD}" | docker login -u "${DOCKERHUB_USERNAME}" --password-stdin build: commands: - docker pull docker:dind
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 10 mesi fa