O Jib cria contêineres sem usar um Dockerfile ou exigir uma instalação do Docker (links em inglês). Você pode usar o Jib nos plug-ins do Jib para Maven ou Gradle ou usar a biblioteca Java do Jib (conteúdo das páginas em inglês).
O que o Jib faz?
O Jib lida com todas as etapas de empacotamento do aplicativo em uma imagem de contêiner. Você não precisa saber as práticas recomendadas para criar Dockerfiles ou ter o Docker instalado.
Fluxo de criação do Docker:

Fluxo de criação do Jib:

O Jib organiza seu aplicativo em camadas distintas, dependências, recursos e classes. Ele utiliza o cache da camada de imagem do Docker para manter as criações rápidas apenas pela recriação de alterações. A organização da camada de Jib e a pequena imagem de base mantêm o tamanho geral da imagem pequeno, o que melhora o desempenho e a portabilidade.
Antes de começar
-
Faça login na sua conta do Google.
Se você ainda não tiver uma, inscreva-se.
-
No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.
- Ative a API Container Registry.
- Se você não tem o Java, faça o download, a instalação e a configuração dele.
- Instale o Maven 3.5 ou mais recente.
- Instale e inicie o SDK do Cloud.
- Autentique-se no Container Registry usando "gcloud" como um auxiliar de credenciais do Docker:
gcloud auth configure-docker
Opcionalmente, consulte a documentação de configuração do Jib para ver outras formas de autenticação.
Como criar usando o Jib
Selecione um projeto atual e navegue até a pasta de origem ou clone a amostra com o seguinte comando:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/run/helloworld
Adicione o plug-in ao seu
pom.xml
:<plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>2.8.0</version> <configuration> <to> <image>gcr.io/PROJECT/IMAGE</image> </to> </configuration> </plugin>
Replace
- PROJECT pelo ID de projeto do Google Cloud;
- IMAGE pelo nome da sua imagem;
Se você não quiser modificar o
pom.xml
, use o comando:mvn compile com.google.cloud.tools:jib-maven-plugin:2.8.0:build \ -Dimage=gcr.io/PROJECT/IMAGE
Crie e envie a imagem para um registro de contêiner:
mvn compile jib:build
É possível verificar o sucesso visualizando seu contêiner no Google Container Registry.
Opcionalmente, se o Docker estiver instalado, você poderá criar para a instalação local do Docker para inspecionar ou executar a imagem como qualquer outro contêiner local:
mvn compile jib:dockerBuild
Personalizações adicionais
É possível personalizar os builds do Jib de maneira semelhante aos Dockerfiles, como adicionando variáveis de ambiente e selecionando uma imagem de base.
Adicionar variáveis de ambiente
É possível adicionar variáveis de ambiente à sua compilação de maneira semelhante à instrução ENV
em um Dockerfile, da seguinte maneira:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.8.0</version>
<configuration>
<to>
<image>gcr.io/PROJECT/IMAGE</image>
</to>
<container>
<environment>
<ENV_VAR>VALUE</ENV_VAR>
</environment>
</container>
</configuration>
</plugin>
Replace
- PROJECT pelo ID de projeto do Google Cloud;
- IMAGE pelo nome da sua imagem;
- ENV_VAR com
NAME
. - VALUE pelo valor desejado.
Agora seu aplicativo responderá com Hello <var>VALUE</var>!
Alterar a imagem base
A imagem base é equivalente às instruções FROM
em um Dockerfile. A imagem de base pode ser atualizada alterando o campo from.image
.
Se você quiser incluir um shell para depuração, defina a imagem base como alpine:3
ou openjdk:VERSION
(se o Java for necessário).
Para adicionar pacotes do sistema, você precisará criar uma imagem de base com esses pacotes instalados. Consulte Como criar contêineres para mais informações.
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.8.0</version>
<configuration>
<from>
<image>gcr.io/PROJECT/BASE_IMAGE</image>
</from>
<to>
<image>gcr.io/PROJECT/IMAGE_NAME</image>
</to>
</configuration>
</plugin>
Tente atualizar o campo from.image
para outra imagem base Java, como openjdk:8-alpine
.
Como personalizar outros aspectos do Java
O Jib é compatível com configurações de tempo de execução do Java necessárias para executar seu aplicativo. Para mais personalizações, consulte Uso prolongado (em inglês).
Como enviar o código
Como configurar padrões do gcloud
Para configurar a gcloud com os padrões do serviço do Cloud Run, realize as etapas a seguir:
Defina seu projeto padrão:
gcloud config set project PROJECT_ID
Substitua PROJECT_ID pelo nome do projeto que você criou para este tutorial.
Configure a gcloud para a região escolhida:
gcloud config set run/region REGION
Substitua REGION pela região compatível do Cloud Run.
Locais do Cloud Run
O Cloud Run é regional, o que significa que a infraestrutura que executa seus serviços do Cloud Run está localizada em uma região específica e é gerenciada pelo Google para estar disponível de maneira redundante em todas as zonas da região.
Atender aos seus requisitos de latência, disponibilidade ou durabilidade são os principais fatores para selecionar a região em que seus serviços do Cloud Run são executados.
Geralmente, é possível selecionar a região mais próxima de seus usuários, mas considere a localização dos outros produtos do Google Cloud usados pelo serviço do Cloud Run.
O uso de produtos do Google Cloud em vários locais pode afetar a latência e o custo do serviço.
O Cloud Run está disponível nas regiões a seguir:
Sujeitas aos preços do nível 1
asia-east1
(Taiwan)asia-northeast1
(Tóquio)asia-northeast2
(Osaka)europe-north1
(Finlândia)europe-west1
(Bélgica)europe-west4
(Países Baixos)us-central1
(Iowa)us-east1
(Carolina do Sul)us-east4
(Norte da Virgínia)us-west1
(Oregon)
Sujeitas aos preços do nível 2
asia-east2
(Hong Kong)asia-northeast3
(Seul, Coreia do Sul)asia-southeast1
(Singapura)asia-southeast2
(Jacarta)asia-south1
(Mumbai, Índia)australia-southeast1
(Sydney)europe-west2
(Londres, Reino Unido)europe-west3
(Frankfurt, Alemanha)europe-west6
(Zurique, Suíça)northamerica-northeast1
(Montreal)southamerica-east1
(São Paulo, Brasil)us-west2
(Los Angeles)us-west3
(Las Vegas)us-west4
(Salt Lake City)
Se você já criou um serviço do Cloud Run, poderá ver a região no painel do Cloud Run no Console do Cloud.
Implantar para o Cloud Run
Implante seu contêiner do Container Registry usando o SDK do Cloud no Cloud Run ou Cloud Run para Anthos no Google Cloud.
Implante a imagem do contêiner usando o seguinte comando:
gcloud run deploy SERVICE-NAME \ --image gcr.io/PROJECT/IMAGE \ --platform managed
Replace
- SERVICE-NAME pelo nome de serviço escolhido.
- PROJECT pelo ID de projeto do Google Cloud;
- IMAGE pelo nome da sua imagem;
A imagem do contêiner é implantada no serviço e na região "Cloud Run" ou no cluster configurado anteriormente em Como configurar o gcloud.
Se estiver implantando no Cloud Run, você será solicitado a permitir invocações não autenticadas. Se você quiser acesso imediato ao seu serviço, responda y
, "Sim" ao prompt "permitir não autenticado". Se o serviço for particular e as solicitações precisarem incluir autenticação, responda n
, "Não" ao prompt "permitir não autenticado".
Se o serviço for público, use o URL exibido após uma implantação bem-sucedida para visitar seu contêiner implantado. Se seu serviço for privado, use o seguinte comando curl
para invocar seu serviço:
curl -H "Authorization: bearer $(gcloud auth print-identity-token)" SERVICE_URL
Se implantado no Cloud Run para Anthos no Google Cloud, consulte Como acessar o serviço implantado.
Limpeza
Se você criou um novo projeto para este tutorial, exclua o projeto. Se você usou um projeto atual e quer mantê-lo sem as alterações incluídas neste tutorial, exclua os recursos criados para o tutorial.
Como excluir o projeto
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto:
- No Console do Cloud, acesse a página Gerenciar recursos:
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
Como excluir recursos do tutorial
Exclua o serviço do Cloud Run que você implantou neste tutorial:
gcloud run services delete SERVICE-NAME
SERVICE-NAME é o nome escolhido do serviço.
Também é possível excluir os serviços do Cloud Run no Console do Google Cloud.
Remova a configuração da região padrão da gcloud que você adicionou durante a configuração do tutorial:
gcloud config unset run/region
Remova a configuração do projeto:
gcloud config unset project
A seguir
- Para saber mais sobre o contrato que seus contêineres precisam respeitar para serem implantados no Cloud Run, consulte Contrato do contêiner.
- Para automatizar as compilações e implantações dos serviços do Cloud Run usando os acionadores do Cloud Build, consulte Configurar a implantação contínua.
- Para saber mais sobre como usar e personalizar o Jib, consulte Repositório do GitHub do Jib (em inglês).