Applicazione Golang da eseguire come contenitore Docker

Applicazione Golang Da Eseguire Come Contenitore Docker



In questo tutorial impareremo le basi della containerizzazione configurando un'applicazione Golang da eseguire come contenitore Docker. Impareremo come lavorare con un Dockerfile per configurare tutti i requisiti per la nostra applicazione.

Go è un linguaggio di programmazione open source, tipizzato staticamente e compilato, rinomato per la sua capacità di facilitare lo sviluppo di un software semplice, affidabile e altamente efficiente. Trova l'utilità nella creazione di diverse applicazioni tra cui app Web, soluzioni native del cloud, interfacce a riga di comando (CLI) e, cosa interessante, anche Docker stesso è realizzato utilizzando Go.

Nel nostro caso, creiamo un semplice server HTTP in Go che ci consente di dimostrare come costruire e Dockerizzare l'applicazione in semplici passaggi.







Requisiti:

Per seguire questo tutorial, sono necessari i seguenti strumenti:



  1. Compilatore Go installato (versione 1.21 e successiva richiesta)
  2. Esecuzione di Docker Engine sul tuo computer host
  3. Un IDE o un editor di testo per modificare l'applicazione Go. Si consiglia di utilizzare Visual Studio o Vim
  4. Un interprete della riga di comando come Bash, ZSH, PowerShell, ecc.

Soddisfatti i requisiti specificati, procediamo e impariamo come creare l'applicazione.



Costruire l'applicazione

Il prossimo passo è creare la nostra applicazione. Nel nostro caso, costruiamo un semplice server HTTP che risponde con un semplice messaggio.





Inizia creando una directory in cui archiviare il progetto Go. È possibile fornire qualsiasi nome appropriato.

$ mkdir go_server

Passare alla directory e creare un nuovo file per archiviare il codice sorgente. Nel nostro caso, chiamiamo il file 'main.go' che denota che il file è un codice sorgente Go.



$ tocco main.go

Infine, modifica il file e aggiungi il codice sorgente all'applicazione come dimostrato di seguito:

pacchetto principale

importare (
'fmt'
'rete/http'
)

funzione principale ( ) {
// gestire le richieste in arrivo
http.HandleFunc ( '/' , funz ( In http.ResponseWriter, r * http.Richiesta ) {
// Scrivi una risposta al cliente
fmt.Fprintf ( In , 'Da Docker (:' )
} )

// Avvia il server HTTP sulla porta 8080
fmt.Println ( 'Il server è in esecuzione su: 8080' )
http.ListenAndServe ( ':8080' , zero )
}

L'applicazione precedente crea un server HTTP di base che si collega alla porta 8080. Il server risponde con un messaggio di base come definito in precedenza.

Testare l'applicazione

Prima di dockerizzare l'applicazione, assicuriamoci che funzioni correttamente. Esegui il seguente comando:

$ vai a eseguire main.go

Il comando precedente avvia l'applicazione e restituisce il messaggio come segue:

Il server è in esecuzione su: 8080

Successivamente, per testare il server HTTP, puoi eseguire il comando “curl” come segue:

$ arricciatura http: // host locale: 8080 /

Il comando precedente dovrebbe restituire il messaggio come segue:

Da Docker ( : %

Ora possiamo procedere e dockerizzare l'applicazione precedente come definito nei passaggi successivi.

Containerizzazione dell'applicazione

I passaggi successivi riguardano la discussione su come creare un contenitore per l'applicazione. Iniziamo creando il Dockerfile nella directory del progetto.

$ CD go_server

Crea un file chiamato Dockerfile senza alcuna estensione e modifica il file con un editor di testo. Questo file ci permette di definire tutti i requisiti per la nostra applicazione come segue:

$ tocco Dockerfile
$ Perché Dockerfile

Aggiungi la configurazione come segue:

DA Golang: 1.21

DIR.LAVORO / app

COPIA . .

ESEGUI vai a costruire main.go -O principale .

ESPORRE 8080

CMD [ './principale' ]

Nel Dockerfile precedente definiamo le operazioni precedenti per l'applicazione.

  • Imposta l'immagine di base sull'immagine ufficiale Golang versione 1.21.
  • Configura la directory di lavoro all'interno del contenitore su '/app'.
  • Copiamo l'intera directory del progetto nel contenitore.
  • Compila l'applicazione Go all'interno del contenitore.
  • Esporre la porta 8080 per consentire un traffico HTTP in entrata.
  • Imposta il comando per eseguire l'applicazione Go.

Creazione dell'immagine Docker

Per creare l'immagine per l'applicazione, apri il terminale e vai alla directory del progetto. Successivamente, esegui il comando seguente per creare l'immagine:

$ sudo compilazione della finestra mobile -T go_server_docker .

Sostituisci go_server_docker con il nome che desideri assegnare all'immagine dell'app.

Dopo aver creato con successo l'immagine Docker, puoi eseguire un contenitore basato su quell'immagine con il seguente comando:

$ esecuzione della finestra mobile -P 8080 : 8080 go_server_docker

Il comando precedente dovrebbe mappare la porta 8080 dal computer host alla porta 8080 all'interno del contenitore.

Per testare il contenitore, esegui il comando seguente:

$ arricciatura http: // host locale: 8080

Questo dovrebbe stampare il messaggio definito nell'applicazione.

Conclusione

In questo tutorial abbiamo imparato come creare un'applicazione Go di base. Abbiamo anche imparato come containerizzare l'applicazione definendo i requisiti nel Dockerfile, costruendo l'immagine dal contenitore ed eseguendo il contenitore dall'immagine.