Referência: Dockerfile
Objetivo: Criar o arquivo Dockerfile, o qual é responsável por compilar, testar, análisar, publicar e executar o projeto (permitindo debug).
- Deve possíbilitar o Debug pela principal IDE da tecnologia (JAVA=Eclipse, .NET=Visual Studio, NODE=VSCode) mais o VSCode
- Deve possibilitar informar o Proxy
TestResults
Deve expor os resultados dos testes no caminho definido.
- Resultado do teste (unitário/integração)
- vstest:
/TestResults/result/vsTest/
- junit:
/TestResults/result/junit/
- nunit:
/TestResults/result/nunit/
- xunit:
/TestResults/result/xunit/
- sonarqube (generic test):
/TestResults/result/sonarqube/
- vstest:
- Cobertura de código
- cobertura:
/TestResults/codecoverage/coverage.cobertura.xml
- opencover:
/TestResults/codecoverage/coverage.opencover.xml
- lcov:
/TestResults/codecoverage/lcov.info
- html:
/TestResults/codecoverage/Report/
- cobertura:
Artefatos
Deve expor os arquivos do resultado da compilação no caminho definido pela variável.
- packages:
- npm:
/var/release/packages/npm/
- nuget:
/var/release/packages/nuget/
- maven:
/var/release/packages/maven/
- npm:
- source:
/var/release/source/
- www:
/var/release/www/
Registry (bibliotecas)
Variaveis de ambiente
- NPM
- NPM_REGISTRY
- NPM_USER
- NPM_PASS
- NPM_EMAIL
- NUGET
- NUGET_REGISTRY
- NUGET_USER
- NUGET_PASS
- MAVEN
- MAVEN_REGISTRY
- MAVEN_USER
- MAVEN_PASS
Cache
Utilizar das boas práticas para uso de cache
Multistage
- Referência
- Todas as linguagens possuem as seguintes etapas em um Dockerfile. Estas são:
- base:
- Estágio de instalação das ferramentas necessárias para compilação do projeto
- ci:
- Restaurar
- Compilar
- Continuous Integration
- Rodar testes unitários/integração,
- Análise de código pelo sonarqube
- Possibilitar entrypoint para criação de um ambiente para os testes.
- build:
- Estágio de Compilação
- publish:
- Estágio para geração dos arquivos finais (runtime/pacotes)
- release:
- Estágio de deploy dos arquivos.
- Pacotes nuget/npm/maven no registry
- Kubernetes
- Estágio de deploy dos arquivos.
- final:
- Estágio de Execução