2.7 - Binary Deployment
O Openshift permite que imagens docker sejam construídas automaticamente, informando somente o repositório do código-fonte por meio do Source-to-Image como você pode testar no Lab 2.1.5. Mas existem casos que você já tem o binário da sua aplicação compilado e pronto em um repositório como o Nexus. O Openshift também possibilita que possamos executar o processo do source-to-image utilizando esse binário.
Iremos criar um JBoss EAP 7 com um aplicação chamada contador.
Importando a Image Stream do EAP 7
Uma Image Stream e suas tags associadas fornecem uma abstração para fazer referência a imagens de containers dentro do OpenShift. A Image Stream
permite que você veja quais imagens estão disponíveis e garante que você está usando a imagem específica que você precisa mesmo se a imagem no repositório for alterada.
Importe a definição de Image Stream do EAP 7.0:
Crie os secrets
usados pelos templates do EAP 7.0
Verifique se o Image Stream
está presente em seu projeto/namespace
Download da app de exemplo
Vamos criar agora uma pasta para trabahar nessa demonstração:
Para testar essa funcionalidade, vamos fazer o download de uma aplicação de exemplo já existente. Iremos baixar o arquivo de deployment (contador.war) e salvar na pasta deployments. Para isso execute o seguinte comando:

Criando binary deployment no Openshift
Agora precisamos falar para o Openshift criar um novo build usando o JBoss EAP e dizendo para ele para não usar o código-fonte e sim o binário da aplicação.
Esse comando irá criar um BuildConfig que nada mais é que um arquivo descritor explicando como o Openshift deve construir a imagem docker. O detalhe nesse caso é o parametro --binary=true. Ele instrui que o BuildConfig use o binário ao invés do código-fonte da aplicação.

Se olharmos os BuildConfig que acabamos de criar, podemos perceber que ele é do tipo binário. Para ver os buildconfigs executamos:

Nosso próximo passo é executar o build que acabamos de criar:
Estamos passando nesse comando qual o diretório que queremos enviar para a imagem do JBoss EAP 7. Nesse caso, é o diretório atual. A imagem do JBoss EAP sabe que deve pegar os arquivos que estão dentro da pasta deployments e jogar na pasta do JBoss responsável pelo deployment.
Isso tudo acontece porque essa imagem do JBoss usa S2I e portanto sabe o que fazer quando recebe um binário. Você poderia criar uma imagem e adicionar esse comportamento caso desejado.

Após executar o comando acima, um novo build é iniciado. Para visualizar, acesse:
No menu lateral, clique em Builds -> Builds
Na tabela seguinte, clique em binary-deployment

Assim que o build concluir, ele irá apresentar o status como completed

Agora podemos criar nossa aplicação com base na nova imagem gerado por esse build.
Para isso, executamos:

Preciamos por último criar uma rota para que nossa aplicação possa ser acessada por fora do Openshift.
Esse comando expõe o seu app, criando uma rota para o mesmo. A url gerada pode ser conferida em Applications > Routes

Acesse a url disponibilizada para acessar a aplicação. O contexto da aplicação é /contador
. Para acessá-la, pegue a rota com o comando abaixo:
Abra a url no browser e adicione no final o /contador
.

Limpeza do lab
Mais informações:
Last updated