Dev (Back & Front)ARTIGO

Dockerizando o GoLang

No seguinte artigo, o autor apresenta um passo a passo de como subir uma aplicação em um container

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.

Microsoft (MVP), atualmente trabalha como Arquiteto de Software para TV Bandeirantes. Nesses últimos anos, focou nas tecnologias criadas pela Microsoft, mas sempre esteve antenado para as novas tecnologias que estão surgindo no mercado. Em um breve resumo, é uma pessoa apaixonada pelo que faz, tem a sua profissão como hobby.

Ver perfil