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.

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