Desenvolvendo uma Aplicação Golang com Docker
Criando uma Aplicação Golang
Começaremos criando uma simples aplicação Golang. Crie um novo diretório para seu projeto e navegue até ele em seu terminal. Em seguida, crie um novo arquivo chamado main.go e adicione o seguinte código:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Olá, LabEx!")
})
fmt.Println("Iniciando servidor na porta 8080...")
http.ListenAndServe(":8080", nil)
}
Este código cria um servidor web simples que escuta na porta 8080 e responde com a mensagem "Olá, LabEx!" quando o URL raiz (/) é acessado.
Dockerizando a Aplicação Golang
Para executar esta aplicação Golang usando Docker, precisamos criar um Dockerfile. Um Dockerfile é um arquivo de texto que contém um conjunto de instruções para construir uma imagem Docker.
Crie um novo arquivo chamado Dockerfile no mesmo diretório do seu arquivo main.go e adicione o seguinte conteúdo:
## Use a imagem oficial Golang como imagem base
FROM golang:1.16
## Defina o diretório de trabalho para /app
WORKDIR /app
## Copie o código Go para o contêiner
COPY . .
## Compile a aplicação Go
RUN go build -o main .
## Expõe a porta 8080 para o servidor web
EXPOSE 8080
## Execute a aplicação Go quando o contêiner inicia
CMD ["./main"]
Este Dockerfile faz o seguinte:
- Usa a imagem oficial Golang como imagem base.
- Define o diretório de trabalho para
/app.
- Copia o código Go para o contêiner.
- Compila a aplicação Go e nomeia o executável
main.
- Expõe a porta 8080 para o servidor web.
- Executa a aplicação Go quando o contêiner inicia.
Construindo a Imagem Docker
Agora, vamos construir a imagem Docker para nossa aplicação Golang. Em seu terminal, execute o seguinte comando:
docker build -t labex/golang-app .
Este comando constrói uma imagem Docker com a tag labex/golang-app usando o Dockerfile no diretório atual.
Executando o Contêiner Docker
Depois que a imagem for construída, você pode executar a aplicação Golang em um contêiner Docker usando o seguinte comando:
docker run -p 8080:8080 labex/golang-app
Este comando executa o contêiner labex/golang-app e mapeia a porta 8080 no host para a porta 8080 no contêiner.
Agora você pode abrir seu navegador web e navegar para http://localhost:8080 para ver a mensagem "Olá, LabEx!".
Seguindo esses passos, você desenvolveu e implantou com sucesso uma aplicação Golang usando Docker. Na próxima seção, exploraremos como implantar esta aplicação Golang baseada em Docker.