インターネット技術の継続的な更新に伴い、golang 言語は人気のある言語となり、その高い効率性、安定性、クロスプラットフォームなどの特徴により広く使用されています。 golang の開発はシンプルで簡単に始められますが、デプロイメントプロセスは比較的複雑であり、慎重な検討が必要です。この記事では、読者が golang のデプロイメントをよりよく理解できるように、次の側面から golang のデプロイメント プロセスを説明します。
1. golang アプリケーションのコンパイル
golang アプリケーションをデプロイする最初のステップはコンパイルです。 Golang は静的にコンパイルされる言語です。つまり、アプリケーションはバイナリ ファイルに完全にコンパイルされ、外部ライブラリやランタイム環境に依存する必要がありません。これにより、依存関係とコンポーネントのリスクが軽減され、移植性が向上します。
プログラムをコンパイルする前に、golang をインストールし、関連する環境を設定する必要があります。ターミナルを開いて次のコマンドを入力し、インストールが完了していることを確認します。
go version
上記のコマンドは、使用されている Golang のバージョン番号を出力する必要があります。
一般に、golang Web サービスのデプロイメントでは、リスニング ポート番号をコード内で指定する必要があります。コード ルート ディレクトリで、ターミナルを開き、次のコマンドを入力してプロジェクトをコンパイルします。
go build
コンパイル後、実行可能ファイルが生成されます。これが、デプロイする必要があるプログラムです。
2. Docker イメージを構築する
アプリケーションを構築した後、デプロイする前にそれをコンテナーに配置する必要があります。多くの場合、サーバー環境が異なれば問題も異なります。そのため、コンテナー テクノロジを使用すると、アプリケーションと環境を一緒にパッケージ化し、異なる環境間の差異を解決できます。このセクションでは、Docker を使用して golang アプリケーションのイメージを構築し、その後のデプロイメントを容易にする方法を紹介します。
Dockerfile ファイルの機能は、Docker コンテナー内でアプリケーションの実行環境を定義することですが、同時に、コンテナーにコピーする必要があるコードも指定できます。
FROM golang:1.16-alpine # 设置代码目录 ENV APP_PATH /go/src/golang_deploy WORKDIR $APP_PATH # 拷贝代码到容器内 COPY . $APP_PATH # 编译应用程序 RUN go build # 暴露端口号 EXPOSE 8000 # 定义运行命令 ENTRYPOINT ["./golang_deploy"]
上記の Dockerfile ファイルでは、公式の golang イメージ 1.16-alpine から独自のコンテナの構築を開始します。次に、アプリケーション コードのディレクトリを指定し、コンテナ内のコードをコピーして、コードをコンパイルします。最後に、コンテナが外部に公開するポート番号を指定し、コンテナ内のアプリケーションの起動コマンドを定義します。
Docker イメージをビルドする前に、Docker をインストールし、Docker サービスを開始する必要があります。次のコマンドを使用して Dockerfile ファイルをビルドします。このコマンドは、ビルド時にイメージに golang_deploy のマークも付けます。
docker build -t golang_deploy .
上記のコマンドは、Dockerfile ファイルに基づいてカスタマイズされた Golang 実行イメージを構築し、必要な依存関係とコードがイメージにパッケージ化されます。
3. golang アプリケーションのデプロイ
Docker イメージが構築されたら、それをサーバーにデプロイできます。これは、コンテナーがアプリケーションを実行できることを意味します。 Docker の強力な移植性により、アプリケーションは Docker をサポートするあらゆるプラットフォームで実行できます。
次のコマンドを使用して、golang アプリケーションの Docker コンテナを起動します。
docker run -d -p 8000:8000 golang_deploy
上記のコマンドは、新しい golang_deploy コンテナをフォアグラウンドで起動し (-d パラメータは「バックグラウンドで実行」を意味します)、コンテナのポート 8000 をホスト ポート 8000 に公開します。
4. 欠落しているリンクの検証
自動展開は便利ですが、手動で解決する必要がある小さな問題が常にいくつかあり、多くの場合、欠落したリンクが原因で発生します。以下は、確認のためのよくある質問です。
アプリケーションがコンテナ内で実行されているかどうかを確認します:
docker ps
上記のコマンドは、実行中のコンテナを一覧表示するために使用されており、デプロイしたばかりのコンテナが表示されるはずです。
アプリケーションが Docker コンテナによって公開されているポート (8000) でリッスンしているかどうかを確認します。
docker port <CONTAINER ID>
上記のコマンドは、指定されたコンテナのポート マッピングをクエリできます。 docker ps コマンドによって出力された最初のコンテナ ID にする必要があります。
最後に、ブラウザまたはカールを使用して、golang アプリケーションが実際に実行されていることを確認します:
curl http://<IP>:8000
このコマンドの
上記の手順の後、golang アプリケーションが正常にデプロイされました。この記事が皆さんに golang アプリケーションのデプロイメントについてより深く理解してもらえることを願っています。
以上がgolangのデプロイプロセスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。