Skip to content

Latest commit

 

History

History
91 lines (55 loc) · 3.36 KB

File metadata and controls

91 lines (55 loc) · 3.36 KB

2.1.6 - Usando Dockerfile

Além do Source to Image, o Openshift permite realiza o build de Dockerfile para você. Basta adicionar o seu Dockerfileem um repositório git e informar ao Openshift que iremos utilizar a estratégia de build do tipo docker. Para esse exemplo, iremos utilizar o mesmo repositório criado no lab anterior conforme exemplo abaixo**:**

https://github.com/<seu-usuario>/workshop-ocp.git

Criando nosso Dockerfile

Vamos criar um Dockerfile com base na imagem oficial do PHP para Openshift. É importante salientar que, existem boas práticas na construção de imagens Docker e também em imagens para o Openshift.

Abaixo segue o conteúdo do arquivo:

FROM registry.access.redhat.com/rhscl/php-70-rhel7

RUN echo "<h1>Meu Dockerfile</h1>" > /opt/app-root/src/index.php

CMD ["container-entrypoint", "/usr/libexec/s2i/run"]

O conteúdo do arquivo fica assim:

E commita ele

Nosso repositório agora tem um novo arquivo:

Também podemos salvar esse arquivo com nome de Dockerfile na raiz do nosso git executando:

git add Dockerfile
git commit -m "Dockerfile adicionado"
git push

Executando o Dockerfile com Openshift

Para criar uma aplicação com base no Dockerfile, precisamos executar o seguinte comando:

oc new-app \
 --name=dockerfile-app \
 --strategy=docker \
 https://github.com/<seu-usuario>/workshop-ocp.git

Para saber o nome do seu projeto no Openshift, basta executar:

oc get projects

O valor default para o parametro strategy é source. Isso indica que, por padrão, o Openshift irá analisar o repositório git tentando compilar o código fonte da aplicação e usar o source-to-image. No nosso caso, queremos que ele use somente o Dockerfile e ignore o código fonte. Por isso informamos o parametro --strategy=docker

Assim que executamos o comando, o Openshift inicia o novo build.

Na versão 3.7 do Openshift, o build é mostrado conforme imagem abaixo:

A diferença desse build para o source-to-image executando anteriormente, é que nesse caso o Openshift está construindo nossa imagem Docker usando Dockerfile. Se acessarmos o log do build, podemos ver ae execução do nosso código.

Para finalizar, crie uma rota no Openshift para podermos acessar nossa aplicação:

oc expose svc dockerfile-app

Limpando nosso lab

Remova o arquivo Dockerfile do repositório Git para evitar que os próximos labs uttilizem o build com estratégia Docker!

Vamos apagar nossa aplicação criada com base no Dockerfile. Dessa forma, deixaremos nosso Openshift limpo, organizado e pronto para o próximo lab.

oc delete all -l app=dockerfile-app -n <nome do seu projeto do openshift>