Skip to content
This repository has been archived by the owner on Oct 30, 2019. It is now read-only.

Latest commit

 

History

History
108 lines (83 loc) · 3.02 KB

dockerfile.md

File metadata and controls

108 lines (83 loc) · 3.02 KB

Dockerfile

Referência: Dockerfile

Objetivo: Criar o arquivo Dockerfile, o qual é responsável por compilar, testar, análisar, publicar e executar o projeto (permitindo debug).


Padrões

  • 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/
  • 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/
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/
  • 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
  1. Referência
  2. 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
  • final:
    • Estágio de Execução

Exemplos