Go-Gin アプリケーションを docker でコンテナ化しましょう!
Maheshwar Ligard の写真
Maheshwar Ligard 2023 年 7 月 17
日
<
>
3 分で読む
はじめに
導入
コンテナ化は、アプリケーションをパッケージ化してデプロイするための一般的な方法となっています。最も人気のあるコンテナ化プラットフォームの 1 つである Docker を使用すると、開発者はアプリケーションをどこでも実行できる軽量でポータブルなコンテナに簡単にパッケージ化できます。この記事では、Docker を使用して Jin Framework アプリケーションをコンテナ化する方法について説明します。
前提条件
このチュートリアルを進めるには、次のものが必要です。
コンピューターにインストールされている Go プログラミング言語
コンピューターにインストールされている Docker
Jin フレームワーク アプリケーションを構築する
まず、Docker を使用してコンテナ化する単純な Jin Framework アプリケーションを作成しましょう。以下は、単純な Jin フレームワーク アプリケーションの例です。
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "Hello, world!",
})
})
r.Run(":8080")
}
このアプリケーションは、ルート URL 上の GET リクエストに JSON メッセージで応答する単純な HTTP サーバーを作成します。
このコードを という名前のファイルに保存します。それでは、このアプリケーションを構築してみましょう。メイン.ゴー
go mod init example.com/hello
go mod tidy
go build
これらのコマンドは、アプリケーションの Go モジュールを作成し、必要な依存関係をダウンロードして、アプリケーションをビルドします。これで、 という名前の実行可能ファイルが作成されました。こんにちは
Dockerfileの作成
Jin Framework アプリケーションを構築したので、アプリケーションの Docker イメージを構築できる Dockerfile を作成しましょう。
ファイルと同じディレクトリに次の内容の新しいファイルを作成します。
Dockerfilemain.go
FROM golang:1.16-alpine AS build
WORKDIR /app
COPY . .
RUN go mod download
RUN go build -o /app/hello
FROM alpine:latest
WORKDIR /app
COPY --from=build /app/hello .
CMD ["./hello"]
この Dockerfile は 2 段階のビルド プロセスを指定します。最初の段階では、公式の Golang Docker イメージをベース イメージとして使用し、アプリケーション コードをディレクトリにコピーします。次に、必要な依存関係をダウンロードし、アプリケーションを構築します。第 2 段階では、公式の Alpine Linux イメージをベース イメージとして使用し、第 1 段階で生成された実行可能ファイルをディレクトリにコピーします。最後に、コンテナーの起動時にアプリケーションを実行するコマンドを指定します。/アプリ/アプリ
Dockerイメージを構築する
Gin フレームワーク アプリケーションの Docker イメージを構築するには、次のコマンドを実行する必要があります。
docker build -t gin-example .
このコマンドは、現在のディレクトリにあるイメージを使用して、その名前で新しいイメージを構築するように Docker に指示します。gin-exampleDockerfile
Dockerコンテナを実行する
アプリケーション用の Docker イメージを構築したので、次のコマンドを使用してコンテナー内でそれを実行できます。
docker run -p 8080:8080 gin-example
このコマンドは、イメージから新しいコンテナーを実行し、コンテナーのポート 8080 をホストのポート 8080 にマップするように Docker に指示します。ジンの例
すべてが正常であれば、Web ブラウザで http://localhost:8080 に移動して、Gin フレームワーク アプリケーションにアクセスできるはずです。
結論は
この記事では、Docker を使用して Jin Framework アプリケーションをコンテナ化する方法を検討しました。シンプルな Jin Framework アプリケーションを作成し、アプリケーションの Docker イメージを構築するための Dockerfile を作成しました。
これがお役に立てば幸いです! !