Como usei o docker no Bootcamp Desenvolvimento Backend com Kotlin
Introdução
Olá comunidade da DIO!
Neste artigo vou apenas compartilhar minha jornada sobre como utilizei a linguagem Kotlin em um container Docker Linux para rodar/desenvolver a aplicação do Bootcamp Desenvolvimento Backend com Kotlin.
Começando
Vou partir da premissa de que você tem o Docker instalado no seu sistema operacional, OK ?!
Você pode deixar a pasta do projeto na sua máquina local mesmo pois vamos usar o recurso de volumes do docker. Uma vantagem dessa abordagem é que se você já tem o git configurado não vai precisar reconfigurar, uma vez que você pode utilizá-lo fora do container. No meu caso o projeto estava em /home/administrator/Projects/kotlin/credit-application-system.
Selecionando a imagem docker
Vamos usar a imagem docker chamada "bitnami/java" em http://hub.docker.com pois a mesma está bem atualizada.
Para baixá-la precisamos rodar o seguinte comando no console do Linux:
$ docker pull bitnami/java:latest
Rodando o container
Assim que terminar de baixar a imagem podemos rodar o container para criarmos o nosso ambiente de desenvolvimento.
$ docker run --name kotlin-backend-dio -v /home/administrator/Projects/kotlin/credit-application-system:/app -p 8080:8080 -dit bitnami/java:latest
Explicando as flags utilizadas:
--name kotlin-backend-dio (nome que você quer dar ao seu container)
-v /home/administrator/Projects/kotlin/credit-application-system:/app (pasta do projeto e a pasta do container onde ela será mapeada)
-p 8080:8080 (portas expostas na sua máquina e no container)
-dit (modo detach e terminal interativo)
bitnami/java:latest (é a imagem que baixamos)
Agora podemos entrar no container:
$ docker exec -it kotlin-backend-dio bash
Nesse momento você estará dentro do container como root, então vamos instalar o zip e o unzip pois são dependências da ferramenta sdk (The Software Development Kit Manager) que fica em https://sdkman.io/ , com ele seremos capazes de instalar o Kotlin, o SpringBoot e o Gradle. Basta executar os seguintes comandos:
$ apt update
$ apt install zip unzip
$ curl -s "https://get.sdkman.io" | bash
Após o término da instalação do sdk precisamos sair do container e entrar novamente para atualizar as variávies do path.
$ exit <enter>
$ docker exec -it kotlin-backend-dio bash
Agora sim vamos poder utilizar o sdk para instalar os nossos pacotes. Vale lembrar que neste container já temos o java instalado.
$ sdk install kotlin
$ sdk install springboot
$ sdk install gradle
Usando o ambiente de desenvolvimento
Prontinho, após o término desta etapa podemos rodar nossa aplicação Springboot com Kotlin da seguinte forma,
$ gradle bootRun
Para rodar testes seria da seguinte forma:
$ gradle test (roda todos os testes da sua aplicação)
$ gradle test --tests SuaClasseTest (roda apenas o arquivo que contém a classe SuaClasseTest)
Agora se você quiser compilar e rodar um arquivo Kotlin faça o seguinte:
$ kotlinc arquivo.kt -include-runtime -d arquivo.jar && java -jar arquivo.jar
Referência: https://kotlinlang.org/docs/command-line.html#create-and-run-an-application
É isso !!! Eu sei que ficou um pouco longo, mas espero que possa contribuir para a comunidade. :-)