in Desenvolvimento

Docker e Yeoman: generator-docker

O Docker e a tecnologia de containers facilitam muita a padronização de ambientes, a agilidade em provisionar infra-estrutura e ainda, nos ajudam a transformar o ambiente de nossa aplicação em parte do projeto. Já o Yeoman é uma ferramenta que nos ajuda durante a criação de projetos, templates e scaffoldings, como por exemplo criar a estrutura de um projeto com ASP.NET Core sem a necessidade do Visual Studio.

Neste post vou mostrar um generator do Yeoman que utilizei para gerar scripts e arquivos de configurações para o Docker, atualmente ele gera scripts para ASP.NET 5.0, Node.JS e Go.

https://github.com/Microsoft/generator-docker

Pré requisitos

Entre os pré requisitos estão o  Node.js, o npm e o Yeoman

Com eles instalados, podemos testar em nosso terminal com os seguintes comandos:

node --version
npm --version
yo --version

Instalando o Docker generator

Para instalar o Docker generator, vamos utilizar o npm:

npm install -g generator-docker

yo-docker

Criando uma aplicação

Agora que temos o gerador instalado, podemos executar o nosso gerador, e com ele criar os arquivas base para gerar nosso containers.

No meu exemplo vou criar uma aplicação ASP.NET Core (RC2) utilizando o Yeoman generator for ASP.NET, poderia ter criado a aplicação através do Visual Studio (caso estivesse no Windows).

yo aspnet

criando-o-projeto1

criando-o-projeto-2

Gerando os arquivos para o Docker

Com a aplicação criada podemos entrar no diretório dela e utilizar o Generator for Docker para criar os arquivos que são responsáveis para configurar e gerar os containers que utilizaremos em nossa aplicação.docker-criando-app

Após este passo, já temos os arquivos gerados em nossos projetos:

arquivos-gerados

Abaixo está o conteúdo do arquivo Docerfile.release

FROM microsoft/dotnet:1.0.0-preview1
COPY project.json /app/
WORKDIR /app
RUN ["dotnet", "restore"]
COPY . /app
RUN ["dotnet", "build", "-c", "release"]
EXPOSE 5000
ENTRYPOINT ["dotnet", "run"]

Para gerar as imagens da nossa aplicação vamos utilizar o dockerTask.sh com o parâmetro build.

sh dockerTask.sh build

Com o docker images podemos ver a imagem que foi criada no processo anterior:

docker images

images

Utilizando a imagem criada, podemos criar um container e executar nossa aplicação:

docker run -d -p 80:5000 webapplication_image

E temos nossa app sendo executada a partir de um container e acessível no localhost:80 \0/app-rodando

Ao executar docker ps podemos ver o container executando:

docker-ps

Próximos passos

Como próximos passos, vale entender e conhecer os arquivos que foram gerados, o conceito de imagem de debug e release, além de outros comandos que estão no dockerTask.sh (lembrando que se você utiliza Windows, o arquivo gerado será um PowerShell com o seguinte nome: dockerTask.ps1).

Espero que este post seja útil, estou a disposição para dúvida, criticas e sugestões

abs

Rodolfo

 

 

 

 

 

 

 

  • Cléber

    Parabéns pelo artigo. Uma pergunta bem noob: como eu consigo fazer esses passos utilizando o windows? é possível? Obrigado.

  • http://www.rodolfofadino.com.br/ Rodolfo Fadino

    Bom dia Cléber, funciona sim em windows, a diferença é que você irá gerar um PowerShell ao invés do dockerTasks.sh

  • Cléber

    Obrigado