Olá, gostaria de saber qual é a diferença do Dockerfile-fast-jar para o da Dockerfile.jvm
Muito obrigado.
Olá, gostaria de saber qual é a diferença do Dockerfile-fast-jar para o da Dockerfile.jvm
Muito obrigado.
Olá, Marcus. Tudo certo? O fat jar contem, além do seu código, todas as dependências que ele precisa para rodar. Ele pega o código + dependências do projeto e empacota para um único arquivo .jar. O problema dessa abordagem é que temos perda de armazenamento, largura de banda e tempo. Como é um arquivo maior, toda vez que mudássemos apenas o código e precisássemos subir uma nova imagem, ele pegaria o código + dependências todas as vezes. Para termos uma opção a esse cenário, temos o dockerfile-fast-jar, que vai aproveitar as vantagens do mecanismo de camadas do Docker. As camadas serão ordenadas pela frequência de mudança, logo se tivermos alteração apenas em código, as camadas para os recursos e dependências serão reaproveitadas. Podemos ver isso no arquivo:
We make four distinct layers so if there are application changes the library layers can be re-used
COPY --chown=1001 target/quarkus-app/lib/ /deployments/lib/ COPY --chown=1001 target/quarkus-app/*.jar /deployments/ COPY --chown=1001 target/quarkus-app/app/ /deployments/app/ COPY --chown=1001 target/quarkus-app/quarkus/ /deployments/quarkus/
Muito obrigado João Victor.