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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Container Registry API.
- 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 inicialize a CLI do Google Cloud.
- Autentique-se no Container Registry usando a CLI do Google Cloud como um
auxiliar de credencial do Docker:
Opcionalmente, consulte a documentação de configuração do Jib para ver outras formas de autenticação.gcloud auth configure-docker
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 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) Baixo CO₂europe-west1
(Bélgica) Baixo CO₂europe-west4
(Países Baixos)us-central1
(Iowa) Baixo CO2us-east1
(Carolina do Sul)us-east4
(Norte da Virgínia)us-west1
(Oregon) Baixo CO2
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)asia-south2
(Déli, Índia)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Varsóvia, Polônia)europe-west2
(Londres, Reino Unido)europe-west3
(Frankfurt, Alemanha)europe-west6
(Zurique, Suíça) Baixo CO₂northamerica-northeast1
(Montreal) Baixo nível de CO2northamerica-northeast2
(Toronto) Baixo CO2southamerica-east1
(São Paulo, Brasil) Baixo CO2southamerica-west1
(Santiago, Chile)us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Se você já criou um serviço do Cloud Run, poderá ver a região no painel do Cloud Run no Console do Cloud.
fazer a implantação no Cloud Run.
Implantar o contêiner do Container Registry usando a CLI gcloud
no Cloud Run ou no Cloud Run for Anthos.
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;
Observe que a imagem do contêiner é implantada no serviço e na região (Cloud Run) ou no cluster (Cloud Run para Anthos no Google Cloud) que você configurou 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, consulte Como acessar o serviço implantado.
Limpar
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:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
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).