インターネットの急速な発展に伴い、エンタープライズ アプリケーションの展開と管理はますます複雑になってきています。 Docker コンテナ技術の登場により、開発者はアプリケーションの展開プロセスと環境構築作業を大幅に簡素化できます。この記事では、Go 言語と Docker コンテナー テクノロジーを使用して Web アプリケーションをデプロイおよび管理する方法を紹介します。
1. 準備
1. Go 言語開発環境をインストールします。
Go 言語開発環境と関連ツールをインストールする必要があります。ダウンロード アドレスは https://golang.org/dl/ です。
2. Docker コンテナテクノロジーをインストールします。
Docker CE の最新バージョンをインストールする必要があります。ダウンロード アドレスは https://www.docker.com/community-edition です。
3. コードエディタをインストールします。
この記事では、コード エディターとして Visual Studio Code を使用します。ダウンロード アドレスは、https://code.visualstudio.com/download です。
4. Go Web プロジェクトを作成します。
コマンド ラインで作業ディレクトリを入力し、次のコマンドを使用して「goweb」という名前の Go Web プロジェクトを作成します。
$ go mod init goweb
5. 必要な Go 依存関係パッケージをダウンロードします。
次のコマンドを使用して、必要な Go 依存関係パッケージをダウンロードします。
$ go get -u github.com/gin-gonic/gin
2. Web アプリケーションの作成
前のステップで、Gin フレームワークは次のようにインストールされました。 Web アプリケーション プログラムの基本的なサポート。簡単な Web アプリケーションを作成してみましょう。
1. プロジェクト内にフォルダーを作成し、フロントエンド リソースと静的ファイルを保存するディレクトリとして「static」という名前を付けます。
2. プロジェクト内に「templates」という名前のフォルダーを作成し、HTML テンプレート ファイルを保存します。
3. 次の内容を含む「main.go」という名前の Go ファイルを作成します:
package main import "github.com/gin-gonic/gin" func main() { router := gin.Default() router.LoadHTMLGlob("templates/*") router.Static("/static", "./static") router.GET("/", func(c *gin.Context) { c.HTML(200, "index.tmpl", gin.H{ "title": "Golang Docker Web Deployment", }) }) router.Run(":8080") }
上記のコードは、Gin フレームワークを使用してテンプレートと静的ファイルをロードする、単純な Web サイトを作成します。この Web サイトは、http://localhost:8080/ にアクセスして表示できます。
3. Docker イメージの構築
次に、Docker を使用して Docker イメージを構築しましょう。
1. プロジェクトのルート ディレクトリに "Dockerfile" という名前のファイルを作成します。ファイルの内容は次のとおりです:
FROM golang:1.16 AS build WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /root/ COPY --from=build /app/app . EXPOSE 8080 CMD ["./app"]
上記のコードは Dockerfile を作成します。最初の段階では、 golang を使用します。 1.16 をベース イメージとして使用し、必要な Go 依存関係パッケージをインストールし、ローカル コードをイメージにコピーしてアプリケーションをビルドします。第 2 フェーズでは、最新バージョンのアルパイン イメージがベース イメージとして使用され、アプリケーション ファイルがコンテナーにコピーされて実行されます。
2. コマンド ラインを開き、プロジェクトのルート ディレクトリを入力し、次のコマンドを実行して Docker イメージをビルドします。
$ docker build -t golang-web .
上記のコマンドは、Dockerfile ファイルの内容を読み取り、「golang-web」という名前のイメージをビルドします。
3. Docker コンテナの実行
次のコマンドを実行してコンテナを起動します。
$ docker run -p 8080:8080 golang-web
上記のコマンドは、「golang-web」という名前のコンテナーを起動し、コンテナーの 8080 ポートをホストの 8080 ポートにマップします。
4. Docker Compose による複数のコンテナの管理
複数のコンテナを同時に管理する必要がある場合は、Docker Compose を使用して複数のコンテナを作成および管理できます。
1. docker-compose.yml ファイルを作成します
プロジェクトのルート ディレクトリに、次の内容を含む「docker-compose.yml」という名前のファイルを作成します:
version: '3' services: backend: build: . ports: - "8080:8080" command: ["./app"] frontend: image: nginx:alpine volumes: - ./frontend:/usr/share/nginx/html ports: - "80:80"
上記の構成では 2 つのサービスが作成されます: 1 つは Go Web アプリケーションを実行する「backend」という名前で、もう 1 つはフロントエンド プロキシとして NGINX Web サーバーを実行する「frontend」という名前です。
2. フロントエンド ディレクトリの作成
プロジェクトのルート ディレクトリに、「frontend」という名前のディレクトリを作成し、次の内容を含む「index.html」という名前の HTML ファイルを作成します。
<!DOCTYPE html> <html> <head> <title>Go Docker Web Deployment</title> </head> <body> <h1>Hello World!</h1> </body> </html>
上記のコードは単純な HTML ページです。
3. Docker Compose の起動
コマンド ラインにプロジェクトのルート ディレクトリを入力し、次のコマンドを実行して Docker Compose を起動します:
$ docker-compose up -d
上記のコマンド 2 つのサービスが開始されます。「-d」オプションを使用すると、Docker Compose がバックグラウンドで実行できることに注意してください。
4. 概要
この記事の導入部を通じて、Go 言語と Docker コンテナー テクノロジを使用して単純な Web アプリケーションを迅速に構築し、Docker Compose を使用して複数のコンテナーを管理できるようになります。この方法により、導入プロセスと環境セットアップ作業が大幅に簡素化され、エンタープライズ アプリケーションの迅速な導入と管理が容易になります。
以上がgolang docker web デプロイメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。