Docs

Imagens

O que uma máquina inicializa: uma imagem do Arrakis com SSH e as ferramentas de sempre, ou uma imagem sua, pública ou privada.

Imagens do Arrakis

Uma máquina inicializa uma imagem do Arrakis, a menos que você escolha outra. Cada uma é uma imagem base oficial com SSH, um banner de login e ferramentas do dia a dia: git, git-lfs, tmux, htop, nvtop, rsync, curl, wget, jq e um editor. O Python está no PATH em toda sessão SSH.

ImagemO que incluiImagem Docker
PyTorch 2.14 (padrão)PyTorch 2.14.1, CUDA 13.0, Python 3.12, Ubuntu 24.04goodailabs/arrakis:pytorch-2.14.1-cuda13.0
PyTorch 2.14 com o kit de ferramentas CUDAA mesma, mais o nvcc, os cabeçalhos do CUDA e um compiladorgoodailabs/arrakis:pytorch-2.14.1-cuda13.0-devel
Kit de ferramentas CUDA 13.0CUDA 13.0.3, cuDNN 9, nvcc, Python 3.12, Ubuntu 24.04goodailabs/arrakis:cuda-13.0.3-devel
Ubuntu 26.04Python 3.14. O driver da GPU vem da máquinagoodailabs/arrakis:ubuntu-26.04

O CUDA 13.0 é a versão que o pip install torch instala, então wheels compilados para o PyTorch funcionam. Ele roda em todas as máquinas do Arrakis, Blackwell incluída: cada uma tem um driver NVIDIA da série 580 ou mais recente. As imagens são públicas no Docker Hub, então você pode baixar a mesma no seu computador; goodailabs/arrakis:latest é a padrão.

Ao entrar, você vê as GPUs da máquina, a imagem e o espaço livre em disco:

Configuração
  6 × NVIDIA RTX A4000, 16 GB each
  PyTorch 2.14.1, CUDA 13.0, Python 3.12.3, Ubuntu 24.04.5 LTS
  32 CPU cores, 125 GB memory, 412 GB free in /workspace

Trabalhe em /workspace. Tudo o que está na máquina, /workspace incluído, é apagado quando ela para.

Suas próprias imagens

Qualquer imagem funciona: vLLM, SGLang, contêineres do NVIDIA NGC ou a imagem do seu time, pública ou privada.

  • Em Images, escolha Add an image e cole o nome do jeito que o docker pull aceita, como vllm/vllm-openai:v0.11.0. Para uma imagem pública, você também pode escolher Your own image ao alugar.
  • O Arrakis consulta primeiro o registro da imagem: ela precisa existir, poder ser baixada e ter uma versão linux/amd64. Um erro de digitação ou um token errado é recusado antes de qualquer cobrança.
  • Registros: Docker Hub, GitHub (ghcr.io), Amazon ECR e ECR Public, Google (Artifact Registry e gcr.io), Azure (azurecr.io), NVIDIA NGC (nvcr.io), Quay, GitLab e Microsoft (mcr.microsoft.com), ou o seu próprio: Harbor, Artifactory, Nexus, um GitLab ou Quay auto-hospedado, qualquer registro pelo nome DNS público, como registry.example.com:5000/team/app:v1.
  • O SSH é adicionado a qualquer imagem na inicialização, então você entra como root do mesmo jeito. A imagem precisa ter um shell.
  • A primeira inicialização em uma máquina baixa a imagem. Imagens grandes demoram mais: uma imagem de 12 GB pode levar de 10 a 20 minutos em uma rede lenta.

Imagens privadas

Marque It's private: log in to pull it ao adicionar a imagem e informe as credenciais que o docker login pediria. O Arrakis verifica a imagem com elas antes de salvar, guarda as credenciais criptografadas e só as usa para baixar esta imagem quando você aluga. A senha nunca mais é exibida.

RegistroNome de usuárioSenha ou token
Docker HubSeu nome de usuário do Docker HubUm token de acesso pessoal só com permissão de leitura
GitHub (ghcr.io)Seu nome de usuário do GitHubUm token clássico com apenas read:packages
Amazon ECR (<account>.dkr.ecr.<region>.amazonaws.com)Um ID de chave de acessoA chave de acesso secreta correspondente
Google (<region>-docker.pkg.dev, gcr.io)_json_keyA chave JSON de uma conta de serviço com o papel Artifact Registry Reader
Azure (<name>.azurecr.io)Um token de repositório ou uma entidade de serviçoA senha correspondente, só com permissão para baixar imagens
NVIDIA NGC (nvcr.io)$oauthtokenSua chave de API do NGC
GitLab (registry.gitlab.com)O nome de usuário de um token de implantaçãoO token de implantação, com read_registry
QuayUma conta de robôO token dela
Seu próprio registroO nome de usuário que ele exigeA senha ou o token correspondente
  • Amazon ECR: use um usuário da AWS que só possa baixar imagens (a política AmazonEC2ContainerRegistryReadOnly). A cada aluguel, o Arrakis troca a chave por um login novo, válido por 12 horas e só para baixar imagens (o que o aws ecr get-login-password imprime), então a máquina nunca vê a chave em si.
  • Seu próprio registro: as máquinas baixam direto dele, de onde estiverem, então ele precisa responder na internet pública por HTTPS, com um certificado de uma autoridade pública (como o Let's Encrypt). Um registro atrás de uma VPN ou de uma lista de IPs permitidos fica inacessível; um com certificado autoassinado é recusado.
  • Use um token só de leitura. A máquina baixa a imagem com ele, e a imagem pode continuar em cache nessa máquina depois que o aluguel termina; por isso, não coloque segredos na imagem e passe-os quando ela rodar.
  • Para trocar um token, escolha Change login ao lado da imagem ou salve a mesma imagem de novo com o token novo. Remover a imagem apaga o login dela em todos os lugares onde o Arrakis o guardou.

Quando a máquina inicia

OpçãoO que rodaUse para
Wait for me to log in (padrão)Nada. A máquina espera por vocêTreinamento, notebooks, qualquer coisa que você inicie por SSH
Run the image's commandO entrypoint e o comando da própria imagemServidores como vLLM, TGI ou SGLang
Run a commandUma linha simples que você fornece, como python -m http.server 8000Um job que começa sozinho

Se o comando terminar, não dá mais para acessar a máquina. Na dúvida, escolha Wait for me to log in.

Acesse um servidor da máquina pelo SSH:

Shell
ssh -L 8000:localhost:8000 root@<host> -p <port>
curl localhost:8000/v1/models

Variáveis de ambiente

Adicione pares KEY=value a uma imagem, um por linha. Eles ficam salvos com a imagem; por isso, não coloque segredos neles e defina os segredos por SSH, por exemplo export HF_TOKEN=... na sua sessão.

Pela CLI, pela API e por agentes

Shell
arrakis images list
arrakis images add vllm/vllm-openai:v0.11.0 --start image
arrakis instances create --node-id <node> --image vllm/vllm-openai:v0.11.0 --start image --termination-hours 2

Para uma imagem privada, informe o login, com o token pela stdin, como no docker login:

Shell
echo "$GITHUB_TOKEN" | arrakis images add ghcr.io/acme/trainer:v3 --username acme-bot --password-stdin
arrakis instances create --node-id <node> --template-id <image id> --termination-hours 2
Shell
curl -X POST $ARRAKIS_URL/v1/instances -H "Authorization: Bearer $ARRAKIS_TOKEN" -H "Content-Type: application/json" \
  -d '{"node_id": "<node>", "name": "vllm", "termination_hours": 2, "ssh_public_key": "ssh-ed25519 AAAA...",
       "image": "vllm/vllm-openai:v0.11.0", "start": "image"}'
  • GET /v1/templates lista as imagens do Arrakis e as suas; POST /v1/templates salva uma (image, start, command, environment e, para uma imagem privada, registry_username e registry_password). A senha é só de escrita: as respostas mostram private e registry_username. PATCH /v1/templates/{id} com os dois campos substitui o login.
  • POST /v1/instances inicializa um template_id ou qualquer image pública com um start.
  • Via MCP, list_images lista as imagens, com as privadas marcadas, e rent_gpu aceita template_id ou image.

É um agente? Esta página em Markdown.