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:
- Compilatore Go installato (versione 1.21 e successiva richiesta)
- Esecuzione di Docker Engine sul tuo computer host
- Un IDE o un editor di testo per modificare l'applicazione Go. Si consiglia di utilizzare Visual Studio o Vim
- 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_serverPassare 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 principaleimportare (
'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.goIl comando precedente avvia l'applicazione e restituisce il messaggio come segue:
Il server è in esecuzione su: 8080Successivamente, 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_serverCrea 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.21DIR.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_dockerIl 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: 8080Questo 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.