1
resposta

Doxker - Melhor maneira de dar deploy em um projeto Java com Grade

Tenho um projeto Java Web com Grade. Em desenvolvimento, atualmente apenas mando rodar pela IDE e a mesma já sobe o Tomcat para teste. Em produção, gero o WAR também pela IDE e atualizamos nos clientes.

O desejo é utilizar docker para desenvolvimento e produção. Qual seria a melhor abordagem? Para desenvolvimento seria ideal criar uma imagem que pegue os Fontes e de deploy internamente ou eu gero o WAR no host e só crio um volume adicionando ele?

E para produção, ao invés de volume devo criar a imagem com o WAR dentro ou consigo matar os dois problemas com uma única configuração?

1 resposta

Alan,

Quando uso docker com Java, eu gero o jar fora do container e no Dockerfile eu "jogo" dentro do container com o comando COPY. Ainda no Dockerfile, digo como o projeto deve subir. Não tenho nenhum exemplo com WAR, mas tenho um com jar que pode te ajudar.

FROM openjdk:8-jdk-alpine

RUN mkdir /homeboy

COPY target/homeboy-1.0-SNAPSHOT.jar /homeboy/homeboy-1.0-SNAPSHOT.jar

WORKDIR /homeboy

CMD ["sh", "-c", "java -Dspring.profiles.active=$JAVA_ENV -Djava.security.egd=file:/dev/./urandom -Xms128m -Xmx512m -jar homeboy-1.0-SNAPSHOT.jar"]

O ideal é repetir o que você faz fora do container, para fazer a "receita" no Dockerfile.