Golang alkalmazás Docker-tárolóként futtatható

Golang Alkalmazas Docker Tarolokent Futtathato



Ebben az oktatóanyagban a konténerezés alapjait fogjuk megtanulni úgy, hogy beállítunk egy Golang alkalmazást, hogy Docker-tárolóként futhasson. Megtanuljuk, hogyan dolgozhatunk Dockerfile-lel, hogy beállítsuk az alkalmazásunkra vonatkozó összes követelményt.

A Go egy nyílt forráskódú, statikusan gépelt és lefordított programozási nyelv, amely arról híres, hogy képes egyszerű, megbízható és rendkívül hatékony szoftver fejlesztését elősegíteni. Különféle alkalmazások, köztük webalkalmazások, felhőalapú megoldások, parancssori felületek (CLI-k) elkészítésében találja meg a hasznosságot, és érdekes módon még maga a Docker is Go segítségével készült.

Esetünkben egy egyszerű HTTP-kiszolgálót építünk a Go-ban, amely lehetővé teszi számunkra, hogy egyszerű lépésekkel demonstráljuk, hogyan kell az alkalmazást felépíteni és Dockerizálni.







Követelmények:

Az oktatóanyag követéséhez a következő eszközökre van szüksége:



  1. Telepített Go fordító (1.21 és újabb verzió szükséges)
  2. A Docker Engine futtatása a gazdagépen
  3. IDE vagy szövegszerkesztő a Go alkalmazás szerkesztéséhez. Javasoljuk a Visual Studio vagy a Vim használatát
  4. Parancssori értelmezők, például Bash, ZSH, PowerShell stb.

Ha a megadott követelmények teljesülnek, folytassuk és tanuljuk meg az alkalmazás elkészítését.



Az alkalmazás felépítése

A következő lépés az alkalmazásunk elkészítése. Esetünkben egy egyszerű HTTP szervert építünk, amely egy egyszerű üzenettel válaszol.





Kezdje azzal, hogy hozzon létre egy könyvtárat a Go projekt tárolására. Bármilyen megfelelő nevet megadhat.

$ mkdir go_server

Navigáljon a könyvtárba, és hozzon létre egy új fájlt a forráskód tárolásához. Esetünkben a „main.go” fájlt hívjuk, amely azt jelzi, hogy a fájl Go forráskód.



$ érintés fő.go

Végül szerkessze a fájlt, és adja hozzá a forráskódot az alkalmazáshoz az alábbiak szerint:

csomag fő

import (
'fmt'
'net/http'
)

func main ( ) {
// kezelni a bejövő kéréseket
http.HandleFunc ( '/' , func ( Ban ben http.ResponseWriter, r * http.Kérés ) {
// Írjon választ az ügyfélnek
fmt.Fprintf ( Ban ben , 'A Dockertől (:' )
} )

// Indítsa el a HTTP-kiszolgálót a porton 8080
fmt.Println ( 'A szerver a :8080-on fut' )
http.ListenAndServe ( ':8080' , nulla )
}

Az előző alkalmazás létrehoz egy alapvető HTTP-kiszolgálót, amely a 8080-as porthoz kötődik. A kiszolgáló a korábban meghatározott alapvető üzenettel válaszol.

Az alkalmazás tesztelése

Mielőtt dokkolnánk az alkalmazást, győződjön meg arról, hogy az alkalmazás megfelelően működik. Futtassa a következő parancsot:

$ menj fuss fő.go

Az előző parancs elindítja az alkalmazást, és a következő üzenetet adja vissza:

A szerver ezen fut: 8080

Ezután a HTTP-kiszolgáló teszteléséhez futtassa a „curl” parancsot az alábbiak szerint:

$ göndör http: // helyi kiszolgáló: 8080 /

Az előző parancsnak a következő üzenetet kell visszaadnia:

Dockertől ( : %

Most folytathatjuk és dokkolóba helyezhetjük az előző alkalmazást a következő lépésekben meghatározottak szerint.

Az alkalmazás konténerbe helyezése

A következő lépésben megvitatjuk, hogyan lehet tárolót készíteni az alkalmazáshoz. Kezdjük a Dockerfile létrehozásával a projektkönyvtárban.

$ CD go_server

Hozzon létre egy Dockerfile nevű fájlt kiterjesztés nélkül, és szerkessze a fájlt egy szövegszerkesztővel. Ez a fájl lehetővé teszi, hogy az alkalmazásunkkal szemben támasztott összes követelményt az alábbiak szerint határozzuk meg:

$ érintés Dockerfile
$ mert Dockerfile

Adja hozzá a konfigurációt az alábbiak szerint:

A golangból: 1.21

WORKDIR / kb

MÁSOLÁS. .

RUN go build main.go -O fő .

KIFEJEZNI 8080

CMD [ './fő' ]

Az előző Dockerfile-ban meghatározzuk az alkalmazás korábbi műveleteit.

  • Állítsa be az alapképet a hivatalos Golang kép 1.21-es verziójára.
  • Konfigurálja a tárolón belüli munkakönyvtárat a „/app” értékre.
  • A teljes projektkönyvtárat bemásoljuk a tárolóba.
  • Építse fel a Go alkalmazást a tárolón belül.
  • Tegye szabaddá a 8080-as portot, hogy engedélyezze a bejövő HTTP-forgalmat.
  • Állítsa be a parancsot a Go alkalmazás futtatásához.

A Docker Image felépítése

Az alkalmazás lemezképének elkészítéséhez nyissa meg a terminált, és navigáljon a projektkönyvtárhoz. Ezután futtassa a következő parancsot a kép létrehozásához:

$ sudo dokkoló épít -t go_server_docker .

Cserélje le a go_server_docker értéket arra a névre, amelyhez hozzá szeretné rendelni az alkalmazás képét.

A Docker lemezkép sikeres felépítése után a következő paranccsal futtathat egy tárolót a kép alapján:

$ dokkolófuttatás -o 8080 : 8080 go_server_docker

Az előző parancsnak le kell képeznie a gazdagép 8080-as portját a tárolón belüli 8080-as portra.

A tároló teszteléséhez futtassa a következő parancsot:

$ göndör http: // helyi kiszolgáló: 8080

Ennek ki kell nyomtatnia az alkalmazásban meghatározott üzenetet.

Következtetés

Ebben az oktatóanyagban megtanultuk, hogyan hozhat létre egy alap Go alkalmazást. Megtanultuk továbbá az alkalmazás konténerbe helyezését a Dockerfile követelményeinek meghatározásával, a tárolóból való kép létrehozásával és a konténer futtatásával a lemezképből.