Go é uma linguagem de programação de código aberto, digitada estaticamente e compilada, conhecida por sua capacidade de facilitar o desenvolvimento de um software simples, confiável e altamente eficiente. Ele encontra utilidade na criação de diversos aplicativos, incluindo aplicativos da web, soluções nativas da nuvem, interfaces de linha de comando (CLIs) e, curiosamente, até o próprio Docker é criado usando Go.
No nosso caso, construímos um servidor HTTP simples em Go que nos permite demonstrar como construir e encaixar o aplicativo em etapas simples.
Requisitos:
Para acompanhar este tutorial, você precisa das seguintes ferramentas:
- Compilador Go instalado (versão 1.21 e superior necessária)
- Executando o Docker Engine em sua máquina host
- Um IDE ou editor de texto para editar o aplicativo Go. Recomendamos usar o Visual Studio ou Vim
- Um interpretador de linha de comando como Bash, ZSH, PowerShell, etc.
Com os requisitos fornecidos atendidos, vamos prosseguir e aprender como construir o aplicativo.
Construindo o Aplicativo
A próxima etapa é construir nosso aplicativo. No nosso caso, construímos um servidor HTTP simples que responde com uma mensagem simples.
Comece criando um diretório para armazenar o projeto Go. Você pode fornecer qualquer nome adequado.
$ mkdir go_serverNavegue até o diretório e crie um novo arquivo para armazenar o código-fonte. No nosso caso, chamamos o arquivo “main.go”, que indica que o arquivo é um código-fonte Go.
$ tocar principal.go
Por fim, edite o arquivo e adicione o código-fonte ao aplicativo conforme demonstrado a seguir:
pacote principalimportar (
'fmt'
'rede/http'
)
função principal ( ) {
// lidar com solicitações recebidas
http.HandleFunc ( '/' , função ( Em http.ResponseWriter, r * http.Solicitação ) {
// Escreva uma resposta ao cliente
fmt.Fprintf ( Em , 'Do Docker (:' )
} )
// Inicie o servidor HTTP na porta 8080
fmt.Println ( 'O servidor está rodando em:8080' )
http.ListenAndServe ( ':8080' , nada )
}
O aplicativo anterior cria um servidor HTTP básico que se liga à porta 8080. O servidor responde com uma mensagem básica conforme definido anteriormente.
Testando o aplicativo
Antes de encaixarmos o aplicativo, vamos ter certeza de que ele está funcionando corretamente. Execute o seguinte comando:
$ vá correr main.goO comando anterior inicia a aplicação e retorna a mensagem da seguinte forma:
O servidor está sendo executado em: 8080A seguir, para testar o servidor HTTP, você pode executar o comando “curl” da seguinte forma:
$ enrolar http: // host local: 8080 /O comando anterior deve retornar a mensagem da seguinte forma:
Do Docker ( : %Agora podemos prosseguir e encaixar o aplicativo anterior conforme definido nas próximas etapas.
Conteinerizando o aplicativo
As próximas etapas discutem como construir um contêiner para o aplicativo. Começamos criando o Dockerfile no diretório do projeto.
$ cd go_serverCrie um arquivo chamado Dockerfile sem nenhuma extensão e edite o arquivo com um editor de texto. Este arquivo nos permite definir todos os requisitos para nossa aplicação da seguinte forma:
$ tocar Dockerfile$ porque Dockerfile
Adicione a configuração da seguinte forma:
DE golang: 1.21DIRTRABALHO / aplicativo
CÓPIA DE . .
EXECUTAR vá construir main.go -o principal .
EXPOR 8080
DMC [ './principal' ]
No Dockerfile anterior, definimos as operações anteriores do aplicativo.
- Defina a imagem base para a imagem oficial do Golang versão 1.21.
- Configure o diretório de trabalho dentro do contêiner para “/app”.
- Copiamos todo o diretório do projeto para o contêiner.
- Crie o aplicativo Go dentro do contêiner.
- Exponha a porta 8080 para permitir tráfego HTTP de entrada.
- Defina o comando para executar o aplicativo Go.
Construindo a imagem Docker
Para construir a imagem da aplicação, abra o terminal e navegue até o diretório do projeto. Em seguida, execute o seguinte comando para construir a imagem:
$ sudo construção do docker -t go_server_docker.Substitua go_server_docker pelo nome que você deseja atribuir à imagem do aplicativo.
Depois de construir a imagem Docker com sucesso, você pode executar um contêiner baseado nessa imagem com o seguinte comando:
$ execução do docker -p 8080 : 8080 go_server_dockerO comando anterior deve mapear a porta 8080 da máquina host para a porta 8080 dentro do contêiner.
Para testar o contêiner, execute o seguinte comando:
$ enrolar http: // host local: 8080Isso deve imprimir a mensagem definida no aplicativo.
Conclusão
Neste tutorial, aprendemos como criar um aplicativo Go básico. Também aprendemos como conteinerizar o aplicativo definindo os requisitos no Dockerfile, construindo a imagem a partir do contêiner e executando o contêiner a partir da imagem.