====== Ambiente Docker / Integração Contínua ====== ===== Introdução ===== Para permitir melhor integração entre as equipes de desenvolvimento e de servidores da UFRJ, foram criadas imagens de contêineres com ambientes para a execução de aplicações com as linguagem utilizadas pela instituição. Com esses contêineres, as equipes podem trabalhar em ambientes espelho, melhorando essa integração. Este documento foi formulado utilizando-se uma estação de trabalho com o S.O. Ubuntu 18.04. ===== Construindo o ambiente ===== ---- Inicialmente, deve-se clonar as imagens que estão disponíveis em git@git.ufrj.br:andrerodrigues/docker.git. ''$ git clone git@git.ufrj.br:andrerodrigues/docker.git'' ''$ git clone git@git.ufrj.br:CI-CD/docker-tic.git'' Acessando o diretório do projeto, neste caso, com o nome de ''docker'', dentro do diretório ''tic'' podem ser encontradas as imagens, como no exemplo a seguir: {{ :infotic:sistemas:dockerticll.png?400 |}} ---- Em seguida, deve-se construir as imagens que são utilizadas nos ambientes da UFRJ, a fim de manter integridade entre ambientes e análise de futuros problemas de compatibilidade. ([[docker:build|Veja mais]]): Foi criado um arquivo bash para a criação dos containeres de forma automática. Acessando o diretório com os arquivos fonte, basta executar: ''$ sudo ./compilando_imagens.sh'' Serão criadas as seguintes imagens: * **{name}:{tag}** * tic/php-fpm:base * tic/php-fpm:5.6 * tic/php-fpm:7.1 * tic/php-fpm:7.2 * jenkins/jenkins:jdk-8 * jenkins/php-fpm:base * jenkins/php-fpm:5.6 * jenkins/php-fpm:7.1 * jenkins/nodejs:8 * jenkins/nodejs:9 * jenkins/nodejs:10 * jenkins/maven:3.5.3 A estrutura de dependência das imagens segue este padrão: {{ :infotic:sistemas:estrutura_docker.jpg?400 |}} Para visualizar as imagens presentes na estação de trabalho, executa-se ([[docker:imagens|Veja mais]]): ''$ docker images'' ---- Em seguida, deve-se construir a imagem base através do comando ([[docker:build|Veja mais]]): ''sudo docker build -t tic/php-fpm:base tic/php-fpm-base'' Em seguida, deve-se construir a imagem desejada através do comando ([[docker:build|Veja mais]]): ''docker build -t {name}:{tag} tic/{image}'' Exemplo: ''docker build -t tic:php-fpm-7.1 tic/php-fpm-7.1-pg'' ---- Por conseguinte, executa-se o contêiner com o comando: ''docker run -itd --name={docker_name} -v {/path/to/project}:/var/www {name}:{tag}'' Exemplo: ''docker run -itd --name=php71 -v /Documentos/UFRJ/Projetos/DEV:/var/www tic/php-fpm:7.1'' > Note que antes do parâmetro ''name'' há dois hifens. ---- Agora, os projetos em desenvolvimento estão em ''/Documentos/UFRJ/Projetos/DEV'' neste exemplo. Para acessar o ambiente via terminal, usa-se ([[docker:acesso-shell|Veja mais]]): ''docker exec -it --user root {name} bash'' Exemplo: ''docker exec -it --user root php71 bash'' > Note que antes do parâmetro ''user'' há dois hifens.