Introdução geral
O Cloudflare Serverless Registry é um registro de contêineres sem servidor baseado nos Cloudflare Workers e no armazenamento R2. Ele é compatível com push e pull de imagens e fornece autenticação JWT baseada em nome de usuário, senha e chave pública. O projeto é fácil de implantar, compatível com as operações do Docker e adequado para gerenciar imagens de contêineres em um ambiente sem servidor. Apesar de algumas limitações, o Serverless Registry oferece uma solução leve e dimensionável para os desenvolvedores.
Lista de funções
- Suporte para empurrar e puxar o espelho
- Fornecer nome de usuário, senha e autenticação JWT
- Operação compatível com o Docker
- Suporte para fallback para outros registros
- Fácil de implementar e gerenciar
Usando a Ajuda
Instalação e implementação
- Instalação de dependênciasUse o pnpm para instalar todas as dependências (outros gerenciadores de pacotes podem funcionar, mas somente o pnpm é compatível).
$ pnpm install
- Preparando o arquivo wranglerCopie o arquivo de exemplo e configure-o.
$ cp wrangler.toml.example wrangler.toml
- Configuração do bucket de armazenamento R2Criar um bucket de armazenamento R2.
$ npx wrangler --env production r2 bucket create r2-registry
- Configuração do wrangler.tomlAdicionar a configuração do bucket de armazenamento R2 ao arquivo wrangler.toml.
r2_buckets = [ { binding = "REGISTRY", bucket_name = "r2-registry" } ]
- Registro de implantaçãoImplante o registro em um ambiente de produção.
$ npx wrangler deploy --env production
Autenticação por nome de usuário e senha
- Definição do nome de usuário e da senhaNome de usuário e senha: Defina o nome de usuário e a senha como confidenciais.
$ npx wrangler secret put USERNAME --env production $ npx wrangler secret put PASSWORD --env production
Certificação JWT
- Adicionar chave pública JWTAdicionar uma chave pública JWT codificada em base64 para autenticar a senha ou o token.
$ npx wrangler secret put JWT_REGISTRY_TOKENS_PUBLIC_KEY --env production
Empurrando e puxando imagens com o Docker
- Efetuando login no DockerFaça login no Docker com seu nome de usuário e senha.
export REGISTRY_URL=your-url-here echo $PASSWORD | docker login --username $USERNAME --password-stdin $REGISTRY_URL
- Espelho de empurrar (computação)Push: Empurre a imagem para o registro.
docker pull ubuntu:latest docker tag ubuntu:latest $REGISTRY_URL/ubuntu:latest docker push $REGISTRY_URL/ubuntu:latest
- Puxando espelhosExtraia a imagem do registro.
docker rmi ubuntu:latest docker pull $REGISTRY_URL/ubuntu:latest
Retração de configuração
- Configuração do registro de fallbackConfigure o registro de fallback no arquivo wrangler.toml.
[env.production] REGISTRIES_JSON = "[{ \"registry\": \"url-to-other-registry\", \"password_env\": \"REGISTRY_TOKEN\", \"username\": \"username-to-use\" }]"
- Configuração do token de registroDefinindo o token de registro como confidencial.
cat ./registry-service-credentials.json | base64 | wrangler --env production secrets put REGISTRY_TOKEN