← Containers / containers / platform-details
Správa obrázků
Odesílání images během wrangler deploy
Při spuštění wrangler deploy, pokud nastavíte image atribut ve vašem Konfigurace Wrangleru na cestu k Dockerfile, Wrangler obraz kontejneru sestaví lokálně pomocí Dockeru a poté jej nahraje do registru provozovaného Cloudflare.
Tento registr je integrovaný s vaším účtem Cloudflare a je podporovaný R2. O veškerou autentizaci se automaticky stará
Cloudflare, a to jak při nahrávání, tak při stahování obrazů.
Stačí zadat cestu k vašemu Dockerfile:
{
"containers": [
{
"image": "./Dockerfile"
}
]
}[[containers]]
image = "./Dockerfile"A nasaďte Worker pomocí wrangler deploy. Žádná další správa obrazů není nutná.
Při dalších nasazeních Wrangler odešle pouze vrstvy image, které se změnily, což šetří místo i čas.
Použití předem sestavených obrazů kontejnerů
Containers podporují obrazy ze spravovaného registru Cloudflare na registry.cloudflare.com, Docker Hub ↗, Amazon ECR ↗, a Google Artifact Registry ↗.
Použití veřejných obrazů Docker Hub
Pro použití veřejného obrazu Docker Hub nastavte image na plně kvalifikovaný odkaz na obraz z Docker Hub ve vaší konfiguraci Wrangleru.
Například:
{
"containers": [
{
"image": "docker.io/<NAMESPACE>/<REPOSITORY>:<TAG>"
}
]
}[[containers]]
image = "docker.io/<NAMESPACE>/<REPOSITORY>:<TAG>"Veřejné images z Docker Hub nevyžadují konfiguraci registru.
Privátní images z Docker Hub používají postup konfigurace privátního registru popsaný dále.
Pokud jsou nakonfigurovány přihlašovací údaje k Docker Hub, použijí se ke stažení veřejných i soukromých obrazů.
Konfigurace přihlašovacích údajů pro soukromý registr
Pro použití soukromého obrazu z Docker Hub, Amazon ECR nebo Google Artifact Registry spusťte wrangler containers registries configure pro doménu registru.
Wrangler vyzve k zadání secretu a uloží jej do Secrets Store. Pokud ještě nemáte vytvořené úložiště Secrets Store, Wrangler vás nejprve vyzve, abyste ho vytvořili.
Použijte --secret-name k pojmenování nebo opětovnému použití tajného údaje, --secret-store-id k zacílení na konkrétní úložiště Secrets Store a --skip-confirmation pro neinteraktivní spouštění. V CI nebo skriptech předejte tajný klíč přes stdin.
Použití soukromých obrazů Docker Hub
Nakonfigurujte Docker Hub ve Wrangleru pomocí těchto hodnot:
- doména registru:
docker.io - příznak uživatelského jména:
--dockerhub-username=<YOUR_DOCKERHUB_USERNAME> - tajemství: osobní přístupový token Docker Hub s přístupem pouze pro čtení
Vytvoření osobního přístupového tokenu Docker Hub:
- Přihlaste se k Docker Home ↗.
- Přejděte na Nastavení účtu > Osobní přístupové tokeny.
- Vyberte Generate new token.
- Tokenu udělte Čtení přístup a poté zkopírujte hodnotu tokenu.
Interaktivně:
npx wrangler containers registries configure docker.io --dockerhub-username=<YOUR_DOCKERHUB_USERNAME>CI nebo skripty:
printf '%s' "$DOCKERHUB_PAT" | npx wrangler containers registries configure docker.io --dockerhub-username=<YOUR_DOCKERHUB_USERNAME> --secret-name=<SECRET_NAME> --skip-confirmationPo nakonfigurování registru použijte stejný plně kvalifikovaný odkaz na image Docker Hub, jaký je uveden výše.
Použití soukromých obrazů Amazon ECR
Nakonfigurujte Amazon ECR ve Wrangleru pomocí těchto hodnot:
- doména registru:
<AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com - příznak access key:
--aws-access-key-id=<AWS_ACCESS_KEY_ID> - tajemství: odpovídající tajný přístupový klíč AWS
Veřejné images ECR nejsou podporovány.
Požadované přihlašovací údaje vygenerujete vytvořením uživatele IAM se zásadou pouze pro čtení. Následující příklad uděluje přístup ke všem repozitářům images v účtu AWS 123456789012 v us-east-1.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["ecr:GetAuthorizationToken"],
"Effect": "Allow",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage"
],
// arn:${Partition}:ecr:${Region}:${Account}:repository/${Repository-name}
"Resource": [
"arn:aws:ecr:us-east-1:123456789012:repository/*"
// "arn:aws:ecr:us-east-1:123456789012:repository/example-repo"
]
}
]
}Po vytvoření uživatele IAM použijte jeho přihlašovací údaje k nakonfigurujte registry ve Wrangleru. Pokud ještě neexistuje, Wrangler vás vyzve k vytvoření úložiště Secrets Store a poté do něj uloží tajný klíč.
Interaktivně:
npx wrangler containers registries configure <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com --aws-access-key-id=<AWS_ACCESS_KEY_ID>CI nebo skripty:
printf '%s' "$AWS_SECRET_ACCESS_KEY" | npx wrangler containers registries configure <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com --aws-access-key-id=<AWS_ACCESS_KEY_ID> --secret-name=<SECRET_NAME> --skip-confirmationPo nakonfigurování registru použijte v konfiguraci Wrangler plně kvalifikovaný odkaz na image Amazon ECR:
{
"containers": [
{
"image": "<AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<REPOSITORY>:<TAG>"
}
]
}[[containers]]
image = "<AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<REPOSITORY>:<TAG>"Použití soukromých obrazů Google Artifact Registry
Nakonfigurujte Google Artifact Registry ve Wrangleru pomocí těchto hodnot:
- doména registru:
<REGION>-docker.pkg.dev - Příznak e-mailu účtu služby Google:
--gar-email=<SERVICE_ACCOUNT_EMAIL> - tajemství: klíč JSON účtu služby
Veřejným přihlašovacím údajem je e-mail účtu služby, který se zadává pomocí --gar-email. Musí odpovídat client_email pole v klíči účtu služby.
Soukromým přihlašovacím údajem je JSON klíč účtu služby.
Zadejte ho pomocí stdin (cesta k souboru, čistý JSON nebo base64) nebo interaktivní výzvu (cestu k souboru nebo base64).
Wrangler uloží klíč zakódovaný ve formátu base64 do Secrets Store.
Pro vygenerování potřebných přihlašovacích údajů vytvořte účet služby s Artifact Registry Reader roli a stáhněte její JSON klíč:
- V Google Cloud console ↗, přejděte na IAM & Admin > Servisní účty.
- Vyberte Vytvoření servisního účtu, poté zadejte název, ID a volitelný popis.
- Udělte účtu služby Artifact Registry Reader roli a poté vyberte Hotovo.
- Vyberte účet služby a poté otevřete Klíče kartě.
- Vyberte Přidat klíč > Vytvořit nový klíč, vyberte JSON, pak vyberte Vytvořit. Soubor s klíčem se stáhne do vašeho počítače.
Interaktivně: Wrangler si vyžádá klíč, kam zadáte cestu k souboru nebo JSON kódovaný v base64:
npx wrangler containers registries configure <REGION>-docker.pkg.dev --gar-email=<SERVICE_ACCOUNT_EMAIL>CI nebo skripty:
Klíč přesměrujte pomocí pipe přes stdin (obsah klíče jako čistý JSON nebo base64, případně cesta k souboru s klíčem)
cat <PATH_TO_KEY> | npx wrangler containers registries configure <REGION>-docker.pkg.dev --gar-email=<SERVICE_ACCOUNT_EMAIL> --secret-name=<SECRET_NAME> --skip-confirmationPokud jste klíč již uložili do Secrets Store, odkažte se na existující tajný klíč a klíč vynechte:
npx wrangler containers registries configure <REGION>-docker.pkg.dev --gar-email=<SERVICE_ACCOUNT_EMAIL> --secret-name=<EXISTING_SECRET_NAME> --skip-confirmationPo nakonfigurování registru použijte v konfiguraci Wrangler plně kvalifikovaný odkaz na image Google Artifact Registry:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"containers": [
{
"image": "<REGION>-docker.pkg.dev/<PROJECT_ID>/<REPOSITORY>/<IMAGE>:<TAG>"
}
]
}[[containers]]
image = "<REGION>-docker.pkg.dev/<PROJECT_ID>/<REPOSITORY>/<IMAGE>:<TAG>"Použití obrazů z jiných registrů
Pokud chcete použít předem sestavený obraz z jiného poskytovatele registru, nejprve se ujistěte, že existuje lokálně, a poté ho nahrajte do Cloudflare Registry:
docker pull <PUBLIC_IMAGE>
docker tag <PUBLIC_IMAGE> <IMAGE>:<TAG>Wrangler poskytuje příkaz pro nahrávání image do Cloudflare Registry:
npx wrangler containers push <IMAGE>:<TAG>Nebo můžete použít -p příznak s wrangler containers build k sestavení a nahrání obrazu v jednom kroku:
npx wrangler containers build -p -t <TAG> .Výstupem bude URI registru obrazů, které pak můžete použít ve své konfiguraci Wrangler:
{
"containers": [
{
"image": "registry.cloudflare.com/<YOUR_ACCOUNT_ID>/<IMAGE>:<TAG>"
}
]
}[[containers]]
image = "registry.cloudflare.com/<YOUR_ACCOUNT_ID>/<IMAGE>:<TAG>"Odesílání images pomocí CI
Pro použití obrazu sestaveného v prostředí kontinuální integrace nainstalujte wrangler poté
sestavte a nahrajte obrazy pomocí wrangler containers build hodnotou --push příznak, nebo pomocí wrangler containers push příkazu.
Limity registru
Velikost obrazů je omezena dostupným diskem nakonfigurované typ instance pro Container.
Odstraňte obrazy pomocí wrangler containers images delete k uvolnění místa, ale návrat
Workeru k předchozí verzi, která používá smazaný obraz, poté skončí chybou.