Desenvolvimento

12 dez, 2017

Dockerizando o GoLang

Publicidade

Recentemente eu escrevi um artigo demonstrando como podemos criar uma API utilizando a linguagem de programação GoLang, mas pensando no cenário que estamos vivendo, onde muitas empresas estão adotando o Docker, não seria legal subirmos a nossa aplicação em um container?

Pensando nisso, vejamos um passo a passo de como podemos criar uma imagem partindo da API que nos criamos no artigo mencionado acima. Caso você queria baixar o projeto que iremos utilizar nesse artigo, segue o seu link no GitHub.

Com o projeto clonado, abra ele em uma IDE de sua preferencia, em seguida crie um arquivo chamado Dockerfile na raiz do seu projeto e atualize ele com o código abaixo:

FROM golang

ADD . /go/src/github.com/programadriano/golang-api/
COPY . /go/src/github.com/programadriano/golang-api/

RUN go get github.com/gorilla/mux
RUN go install github.com/programadriano/golang-api

ENTRYPOINT /go/bin/golang-api

EXPOSE 3000

Vamos entender os passos acima:

  • FROM: imagem que iremos utilizar.
  • RUN go get: estamos baixando o pacote mux para a nossa imagem.
  • ENTRYPOINT: estamos executando o build do nosso projeto.
  • EXPOSE: expondo a porta que o nosso contêiner irá utilizar.

Agora, para que possamos criar a nossa imagem, execute o comando abaixo no seu terminal dentro do diretório que você criou o seu arquivo Dockerfile.

docker build -t golangapi .

O comando a cima irá baixar a imagem GoLang que definimos no FROM do nosso arquivo Dockerfile e seguir os passos que passamos acima.

Para que possamos verificar se a nossa imagem foi criada corretamente, execute o comando docker images, esse comando irá listar todas imagens que nós temos em nosso host.

Agora, para que possamos criar o nosso container a partir da imagem que nós acabamos de criar, devemos executar o comando abaixo, passando a porta que ele irá utilizar em nosso host e a que liberamos em nosso container:

docker run -p 3030:3000 golangapi

Abra o endereço http://127.0.0.1:3030/ no seu navegador para que possamos ver nossa API sendo executada de dentro no nosso container. Podemos ver o seu retorno abaixo:

[
  {
   Name: "Heisenberg"
  },
  {
   Name: "Pinkman"
  }
]

Agora para que possamos testar o cadastro, iremos utilizar o Postman, ferramenta gratuita que nós auxilia nos testes a requisições HTTP. Com ele aberto, preencha os campos conforme está na imagem abaixo e clique em enviar.

Postman

Por fim, volte no seu método GET e perceba que o Gus Fring está em nosso retorno agora.