Aplicativo Golang para ser executado como um contêiner Docker

Aplicativo Golang Para Ser Executado Como Um Conteiner Docker



Neste tutorial, aprenderemos os fundamentos da conteinerização configurando um aplicativo Golang para ser executado como um contêiner Docker. Aprenderemos como trabalhar com um Dockerfile para configurar todos os requisitos de nossa aplicação.

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:



  1. Compilador Go instalado (versão 1.21 e superior necessária)
  2. Executando o Docker Engine em sua máquina host
  3. Um IDE ou editor de texto para editar o aplicativo Go. Recomendamos usar o Visual Studio ou Vim
  4. 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_server

Navegue 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 principal

importar (
'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.go

O comando anterior inicia a aplicação e retorna a mensagem da seguinte forma:

O servidor está sendo executado em: 8080

A 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_server

Crie 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.21

DIRTRABALHO / 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_docker

O 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: 8080

Isso 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.