Usando contêineres do Docker para configurar / configurar a estação de trabalho de um desenvolvedor?

1

Estou investigando as possibilidades de usar o Docker para padronizar a configuração da estação de trabalho java dos desenvolvedores. O conceito é que um novo desenvolvedor que está começando na equipe pode ser instalado de forma rápida e fácil com todas as ferramentas necessárias para desenvolver / construir e implantar.

Eu entendo a atração de usar o Docker em um pipeline de build, um mesmo em um ambiente de produção, mas estou tendo dificuldades em ver se ele é útil como uma ferramenta em uma estação de trabalho de desenvolvimento.

Por exemplo, ter um contêiner docker com a configuração do Eclipse e configurado com os plug-ins necessários (e construir ferramentas - ex: maven, ant, etc), um contêiner para o BD, um contêiner para o servidor de aplicativos.

É claro que posso prever complexidade adicional com alguém tentando editar o código no Eclipse e querer ativar o código no servidor de aplicativos se o servidor de aplicativos estiver em um contêiner diferente.

Como isso pode ser feito com sucesso e eficiência em ambientes baseados em contêineres?

    
por Eric B. 08.08.2016 / 19:55

2 respostas

1

Para responder a metaquestão

Vagrant é uma ferramenta projetada para configurar e configurar estações de trabalho de desenvolvedores. Você deve investigar antes de continuar com o Docker.

Para responder à pergunta do Docker

Se você decidir ir para a rota do docker, o Docker Compose é sua ferramenta preferida. Todos os seus contêineres seriam especificados em um arquivo de composição, como este:

dev:
  eclipse:
    image: eclipse
  db:
    image: mysql
    ports: 
     - "3306:3306"
    volumes:
     - .:/db
  server:
    image: myapp_server
    ports:
     - "port:port"

Depois, basta executar o docker-compose.

Você pode encontrar muitos dos containers que você precisa no Docker Hub

    
por 09.08.2016 / 02:19
1

Se eu fosse você, eu apenas separava várias tarefas uma da outra - e lidava com elas de uma maneira diferente. Para o ambiente local do desenvolvedor, eu recomendaria usar o Puppet / Terraform / Chef (ou qualquer outra ferramenta de gerenciamento de configuração) que possa configurar o Eclipse e outras ferramentas relacionadas à GUI (o Puppet gerencia vários gerenciadores de pacotes, disponível no Windows também com o Chocolatey).

Recursos do tipo não GUI (como servidor SQL, servidor de cache, servidor de aplicativos / contêiner) podem ser definidos no Docker (com -como claro) - com algum compartilhamento de volume entre o host e os contêineres. Ambas as soluções podem ser gerenciadas e rastreadas no GIT.

    
por 18.08.2016 / 15:07