Tag: tools

Docker Maven

Criando a imagem docker com o maven

No post anterior, Como rodar uma aplicação Java com o Docker, falei um pouco sobre o uso de containers para subir uma aplicação desenvolvida com o framework Spring Boot. Agora que sabemos como criar uma imagem por meio da linha de comando, veremos como fazer isso pelo processo de build do Maven. Para isso, vamos usar o plugin docker-maven-plugin desenvolvido pela galera do Spotify.

Alteração no pom

A única alteração no nosso sistema será no pom.xml:

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.4.13</version>
    <configuration>
        <imageName>mytask</imageName>
        <baseImage>frolvlad/alpine-oraclejdk8:slim</baseImage>
        <entryPoint>["sh", "-c", "java -Djava.security.egd=file:/dev/./urandom -jar /${project.build.finalName}.jar --spring.profiles.active=${spring.profile}"]
        </entryPoint>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
        <imageTags>
            <imageTag>${project.version}</imageTag>
            <imageTag>latest</imageTag>
        </imageTags>
    </configuration>
</plugin>

As configurações necessárias para o uso do plugin são:

  1. imageName – O nome da imagem após o build;
  2. baseImage – O nome da imagem base;
  3. entryPoint – Comando que será executado ao inicializar o container;
  4. resources – Usado para copiar artefatos para dentro do container;
  5. imageTags – As tags da imagem gerada.

Execução do build com o Maven

Com essa pequena modificação, estamos aptos a criar a imagem direto do build com o Maven. Vamos executar o seguinte comando:


$ mvn clean package docker:build --batch-mode release:update-versions

Com esse comando, estamos solicitando ao plugin a execução do processo de build da imagem com os parâmetros que definimos.

Adicionei ao comando o –batch-mode release:update-versions para que o Maven incremente a versão do pom sem interação com o usuário. Fiz isso para que você possa ver as imagens geradas com a mesma versão do pom (linha 18). Então, todas as vezes que o comando for executado, podemos verificar que uma nova imagem está sendo criada com a mesma versão do projeto.

Uma das facilidades que o plugin nos oferece é a abstração em relação aos comandos necessários para criar a imagem. Há muito mais informações do plugin no github do projeto, vale a pena dar uma espiada. O código fonte do exemplo está no meu github.

Agora que você tem mais uma opção para criar a imagem do Docker, seja por intermédio da linha de comando ou pelo Maven, qual você escolheria e por que?

Por hoje é só galera, abraços e até a próxima!

 

localtunnel

localtunnel: Disponibilizando acesso a uma aplicação local

E aí galera, beleza?

Se você, assim como eu (sem gracinhas, viu?), já passou por perrengues para disponibilizar uma aplicação local na web, este post pode ser muito útil.

Antigamente, para acessar uma aplicação rodando na minha própria máquina, a primeira configuração que fazia era cutucar o roteador ou o modem da velox (vixxxxx!!!) e tentar liberar as portas para a máquina.

Naquele tempo, eu não sabia nem o que era configuração de portas, a sorte eram os buscadores do Yahoo, Altavista, Cadê? e depois o Google (tem gente que não vai nem saber o que é Altavista e Cadê?).

Também Já quebrei muito a cabeça com o no-ip para tentar acessar meus “códigos” da faculdade (não dá para chamar de aplicação, porque o desenvolvimento era orientado à gambiarra).

Pois bem, os seus e os meus problemas acabaram! Há alguns anos tenho utilizado com bastante facilidade módulos que me auxiliam nessa questão e hoje quero compartilhar com vocês o localtunnel.

O localtunnel é uma app bem simples de ser utilizada. Não é necessário configurar “nada” no seu firewall e nem no DNS. Acreditem, não é mágica! =)

Instalação

Para instalar o localtunnel é necessário ter, antes, o node.js. A instalação é feita através do npm:

Leia Mais

Bower: Gerenciamento de pacotes no front-end

Fala galera, beleza?

Hoje vamos falar sobre gerenciamento de pacotes com o Bower. Uma das coisas que mais me irritou quando comecei a desenvolver front-end, usando somente módulos javascript, foi justamente o gerenciamento das dependências desses módulos. Como eu tenho raízes no Java, já estava acostumado a ter o Maven ou o Gradle gerenciando toda essa parafernália de libs para mim. Depois de muito trabalho manual, acessando sites e baixando os javascripts (ou pegando somente a referência) conheci finalmente o Bower.

Vale ressaltar que o Bower não é somente um gerenciador de módulos javascript, é também um gerenciador de dependências para front-end. Mas qual a diferença? A diferença é que para ele não interessa se tem javascript, css, html, imagem etc. dentro de um pacote, o que importa é que o código está encapsulado, normalmente acessível ao público e hospedado em um repositório git.

Leia Mais

%d blogueiros gostam disto: