O Super-Docker é o projeto disponibilizado para provisionamento de ambientes do Super usando a tecnologia docker e os orquestradores docker-compose, cattle ou kubernetes.
O projeto atende a qualquer dos profissionais que desejem subir uma instância do Super entre eles:
- desenvolvedores
- arquitetos
- analistas de testes
- analistas de segurança (para avaliação/mapeamento de eventuais vulnerabilidades)
- profissionais de TI envolvidos nas atividades de dev e sustentação do Super
- desenvolvimento/debug do código-fonte do Super
- desenvolvimento/debug do código-fonte dos módulos do Super
- disponibilização de ambientes diversos para o Super:
- teste
- treinamento
- avaliação
- ambientar profissional de infra com os serviços/componentes necessários para a implantação e sustentação do Super
Podemos dividir o projeto em 3 grandes áreas:
-
Na pasta dev há um Automatizador (Makefile) pronto para subir uma instância do Super escolhendo a base de dados e com o xdebug habilitado. Apropriada para subir um ambiente local montando o código fonte do Super. Desta forma você pode usar o seu editor / debugger preferido na edição do código.
Nessa modalidade o projeto disponibiliza para o desenvolvedor os seguintes componentes:
- app (serviço apache para o Super)
- database (mariadb, sqlserver ou oracle)
- memcached
- jod
- solr
- mailcatcher (servidor smtp e mailcatcher para visualizar os emails enviados)
Para maiores informações, acesse a pasta dev e leia o Readme respectivo ou clique aqui para abrir diretamente
-
Na pasta infra há um Automatizador (Makefile) pronto para que um profissional de infra suba rapidamente a estrutura completa do Super usando o docker-compose, com opçoes de:
- openldap
- simulador de servidor de email
- solr admin
- memcached admim
- instalacao automática de módulos
- orgao, siglas e descricoes do ambiente
- http ou https, com cert proprio ou auto-assinado
- entre outras customizações
Usado para criar ambientes de teste, validação, treinamento, tanto para a área técnica quanto para a área negocial
Há a possibilidade de subir toda a infra em uma única vm ou gerar as receitas kubernetes ou Cattle para rodar em seu cluster local
Para maiores informações, acesse a pasta infra e leia o Readme respectivo ou clique aqui para abrir diretamente
-
Na pasta containers encontram-se as receitas para as imagens docker. Os conteineres já existem de forma pública para você rodar o projeto em sua máquina local ou infra. Não é necessário entrar aqui ou conhecer essa área para rodar o Super.
Mas caso mesmo assim deseje buildar as imagens por conta própria, modificá-las ou usar o seu próprio registry; basta acessar essa pasta. Nela estão as receitas docker usadas, bem como as automatizações (Makefile) para criar seus próprios conteineres em seu próprio Docker Registry.
Para maiores informações, acesse a pasta containers e leia o Readme respectivo ou clique aqui para abrir diretamente
Caso faça alguma alteração no projeto, rode os testes propostos para garantir que pelo menos o básico está funcionando de acordo com o esperado.
Dentro de cada grande área há uma pasta de testes. Nessas pastas ficam os testes automatizados para cada área:
-
containers/tests: existem diversos testes para os conteineres.
Rode
make test-containers
para executar uma bateria com todos os subtestes envolvidos. Aqui ele vai criar os conteineres com a tag test e tentará fazer o push bem como outras operações previstas no makefile -
dev/tests: aqui ele irá usar os modelos de envfiles fornecidos, subirá o Super para cada um deles e rodará testes de criacao de processo/documento para saber se está ou não funcionando.
Rode
make tests-all-bases
para executar a bateria com todos os subtestes envolvidos. -
infra/tests: existem diversos testes para a área de infra. Como são muitas possibilidades de customização esse teste é demorado. O automatizador vai subir e destruir o Super diversas vezes variando as formas e possibilidades de customização.
Rode
make test_lineup_completa
para executar todos os subtestes envolvidos. Dependendo da necessidade pode executar os subtestes isoladamente, basta digitarmake help
para uma lista completa das opções disponíveis.
Para utilizar esse projeto você precisa de:
- código fonte do Super
- docker
- docker-compose
Este projeto é a junção de dois outros projetos:
Dúvidas, sugestões ou reporte de bugs usar a parte de issues: https://github.com/supergovbr/super-docker/issues
Para contribuir basta fazer o pull request. Aconselhável antes alinhar os requisitos com algum project owner.