Imagens Docker

Traga seu Dockerfile. Rode qualquer stack.

Sua linguagem, suas dependências do sistema, o seu processo de start. Envie o projeto, a Vertra monta a imagem num ambiente isolado e você sobe quantos apps quiser a partir dela.

Para quem é

Para quando a lista de linguagens não basta.

Os runtimes gerenciados cobrem as linguagens mais comuns. Se você precisa de outra linguagem ou versão, de pacotes do sistema, de um processo de start próprio ou de um app que já vem pronto em imagem, o Dockerfile resolve. Tudo continua no mesmo painel, com os mesmos logs, métricas, domínios e snapshots dos seus outros apps.

Como funciona

Três passos, do Dockerfile ao app no ar.

Sem servidor de build para manter e sem imagem para publicar em lugar nenhum.

Envie o projeto

Um ZIP ou um repositório do GitHub, com a branch que você escolher, e um arquivo chamado Dockerfile na raiz. O painel mostra o que será recusado antes de começar o build.

A Vertra monta a imagem

O build roda num ambiente isolado, com o log ao vivo no painel. Se falhar, a versão que já estava no ar continua intacta.

Crie os apps que quiser

Cada app nasce da mesma imagem com a própria RAM, porta e variáveis de ambiente. Um bot, uma API e um worker podem sair do mesmo Dockerfile.

Benefícios

Liberdade de stack, com o conforto da plataforma.

O que você já tem nos apps comuns continua valendo para os apps de imagem.

Qualquer linguagem ou stack

Inclusive as que não estão na lista de runtimes: se roda num container Linux, roda aqui.

Deploy automático pelo GitHub

Ligue a imagem a um repositório e a uma branch. Cada push rebuilda a imagem, sem abrir o painel.

Versões com rollback

Todo build bem-sucedido vira uma versão. Voltar para uma anterior é instantâneo, porque ela já está pronta.

Snapshots dos seus dados

O disco persistente do app entra nos backups e nos snapshots, com agendamento, retenção e restauração como nos outros apps.

Logs do build ao vivo

Acompanhe cada passo do build no painel enquanto ele acontece e releia o log depois, se algo falhar.

Vários apps por imagem

Monte a imagem uma vez e crie quantos apps precisar, cada um com a sua configuração.

Segurança

Liberdade para o seu código, isolamento para todo mundo.

Você escreve o Dockerfile. A plataforma cuida para que ele não afete ninguém.

O build roda isolado

Cada build acontece num ambiente separado da plataforma e dos outros clientes, com limite de tempo e de recursos.

O app roda com o mesmo sandbox de todos

Um app de imagem tem a mesma proteção de qualquer app da Vertra: container isolado dos outros clientes.

Segredos fora da imagem

Os arquivos .env nunca entram no contexto do build nem na imagem. As variáveis ficam no app, onde você troca o valor sem rebuildar.

Rebuild não derruba nada

Uma nova versão nunca reinicia os apps sozinha, e um build com erro não muda o que está rodando. O app só troca de versão quando você pede.

Regras

O que a plataforma recusa e como o app roda.

O painel confere o Dockerfile antes do build e explica cada recusa. As principais estão abaixo; veja o guia completo nas docs.

Dockerfile na raiz, com esse nome

Um ZIP de até 100 MB ou um repositório do GitHub, com um arquivo chamado exatamente Dockerfile na raiz. A imagem é linux/amd64.

Diretivas que quebrariam o isolamento

É recusado o # syntax= que aponte para um frontend de terceiros, o RUN --network=host e o RUN --security=insecure. Remova a diretiva e o build segue.

Sem segredos dentro do build

Montagens de segredo e de ssh (--mount=type=secret e --mount=type=ssh) são recusadas. Coloque as chaves nas variáveis do app.

.env não entra na imagem

Os arquivos .env são removidos do contexto. As chaves viram sugestão de variável ao criar o app, e os valores nunca entram na imagem.

/app é o disco persistente

O que o app grava em /app fica entre reinícios e entra nos snapshots. Evite WORKDIR /app: o que a imagem colocar lá fica escondido pelo disco. Use outra pasta, como /srv.

Porta, usuário e escrita

O app ouve na porta do primeiro EXPOSE (ou 80) e recebe o valor em PORT. Roda como o usuário 1000:1000, e fora de /app só pastas temporárias, como /tmp, aceitam escrita.

Exemplo

Um Dockerfile comum já basta.

Sem instrução especial: a plataforma usa o seu Dockerfile exatamente como você escreveu, sem reescrever nada.

Dockerfile
FROM python:3.12-slim

WORKDIR /srv
COPY . .
RUN pip install -r requirements.txt

EXPOSE 8000
CMD ["python", "main.py"]
Planos

Disponível no Enterprise 28, 30 e 32.

Até 20 imagens por conta, contando as imagens em qualquer estado. Reconstruir, fazer commit e criar versões não conta como imagem nova.

Limite de imagens Docker por plano
PlanoImagens
Enterprise 2820 imagens
Enterprise 3020 imagens
Enterprise 3220 imagens

Se você descer para um plano sem o recurso, as imagens e os apps que já existem continuam rodando. Só não dá para criar nem reconstruir imagens até voltar a um desses planos, e excluir é sempre possível.

Comparar planos
Dúvidas

Perguntas frequentes

O essencial antes de enviar o primeiro Dockerfile.

Preciso ter conhecimento de Docker?

Só o básico: um Dockerfile que builda e inicia o seu app. Se você já roda o projeto em container na sua máquina, o mesmo Dockerfile costuma funcionar aqui.

Quando devo usar uma imagem em vez de um runtime gerenciado?

Quando o runtime gerenciado não cobre o que você precisa: outra linguagem ou versão, pacotes do sistema, um processo de start próprio ou um app que já vem pronto em imagem. Para as linguagens da lista, o deploy por ZIP ou GitHub é mais simples.

Posso atualizar a imagem depois?

Sim. Você pode reenviar o contexto, fazer um commit de arquivos por cima do atual ou ligar a imagem a um repositório e deixar cada push rebuildar. Os apps só passam para a nova versão quando você reinicia ou faz o deploy.

O que acontece com os dados do meu app?

Tudo o que o app grava em /app fica no disco persistente e entra nos snapshots. A imagem em si não vai no snapshot, porque o código dela já tem histórico nas versões. Ao restaurar, você escolhe se volta também para a versão da imagem.

Por que meu Dockerfile foi recusado?

O painel lista cada ponto. As causas mais comuns são # syntax= de terceiros, RUN --network=host, RUN --security=insecure e montagens de segredo ou de ssh. Remova a diretiva e envie de novo.

O que acontece se eu apagar uma imagem?

A imagem, as versões e todos os apps criados a partir dela são apagados, e você confirma digitando o nome. Cada app segue as regras normais de exclusão, inclusive o snapshot de segurança nos planos que o têm.

Imagens Docker

Seu Dockerfile no ar em poucos minutos.

Envie o projeto, acompanhe o build ao vivo e crie o primeiro app da imagem.