Workflows de uso do docker com Java

Pessoal gostaria de saber como vocês estão usando docker nos workflows “java/maven”.
Pois vejo que o pessoal que usa linguagens dinâmicas usa de forma diferente, pois eles não tem que compilar nada.

Vi algumas pessoas usando em dev para não ter que instalar os softwares na maquina host, outros apenas para fazer deploy.

Vejo pouca gente falando sobre o assunto com java então fica ai a discussão.

Obrigado.

1 curtida

Estou há dias nessa saga.

Pesquisei muito e até agora o que conseguir foi viabilizar isso em dois passos. Criando primeiramente um container para compilação ou compilando na minha própria máquina e posteriormente subindo o artefato (.war) no container.

Achei pouco prático mas a forma que consegui até agora foi esta.
$ mvn clean install && docker build -t java-tomcat . && docker run -it -p 8888:8080 --rm java-tomcat

Dockerfile

FROM tomcat:7
ENV CATALINA_HOME="/usr/local/tomcat"
COPY ./target/*.war $CATALINA_HOME/webapps/projeto.war
EXPOSE 8888:8080

CMD ["catalina.sh", "run"]