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 produção 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" (REGISTRO), bucket_name = "r2-registry" } ]
- Registro de implantaçãoImplante o registro em um ambiente de produção.
$ npx wrangler deploy --env produção
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 produção $ npx wrangler secret put PASSWORD --env produção
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 produção
Empurrando e puxando imagens com o Docker
- Efetuando login no DockerFaça login no Docker com seu nome de usuário e senha.
exportação REGISTRY_URL=seu-url-aqui eco $PASSWORD | docker login --username $USERNAME --senha-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] REGISTROS_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.
gato . /registry-service-credentials.json base64 | wrangler --env segredos de produção put REGISTRY_TOKEN