ホームページ > バックエンド開発 > Golang > golang のオンライン展開

golang のオンライン展開

WBOY
リリース: 2023-05-27 11:18:09
オリジナル
678 人が閲覧しました

1. はじめに

テクノロジーの進歩とインターネットの普及に伴い、オンラインで展開する必要のあるアプリケーションやサービスがますます増えています。このプロセスでは、適切なプログラミング言語を選択することも必要です。 Golang は、オープンソース プログラミング言語として、その速度、効率性、安定性が高く評価されています。この記事では、Golang のオンライン展開の手順と一般的な問題の解決策を詳しく紹介します。

2. Golang プロジェクトのコンパイルとパッケージ化

Golang プロジェクトをデプロイする前に、それをコンパイルしてバイナリ実行可能ファイルにパッケージ化します。以下に 2 つの異なるコンパイル方法を紹介します。

  1. go build コマンドを使用する

Go 言語に組み込まれている go build コマンドを使用して、コンパイルとパッケージ化を完了します。コマンドの形式は次のとおりです。main.go はエントリファイル名です。

go build -o output main.go
ログイン後にコピー
ログイン後にコピー

コマンドを実行すると、output という名前の実行可能ファイルが現在のディレクトリに生成されます。

  1. Docker コンテナを使用したコンパイル

Docker は、広く使用されているコンテナ化ツールです。 Docker コンテナを使用して Golang プロジェクトをコンパイルおよびパッケージ化すると、アプリケーションをより簡単にデプロイおよびアップグレードできます。

次のコマンドを実行して Golang イメージをプルし、コンテナーに入ります:

docker pull golang:latest
docker run -itd --name go golang:latest
docker exec -it go bash
ログイン後にコピー

コンテナーにプロジェクト フォルダーを入力し、 go build コマンドを使用してプロジェクトをコンパイルし、パッケージ化します。

go build -o output main.go
ログイン後にコピー
ログイン後にコピー

実行後、コンテナ内で scp コマンドを使用して、生成されたバイナリ ファイルをローカルにコピーできます。

scp root@ip:/path/to/yourfile .
ログイン後にコピー

3. Golang プロジェクトのデプロイメント

Golang プロジェクトのコンパイルとパッケージ化が完了したら、実稼働環境にデプロイできます。一般的な Golang プロジェクトのデプロイメント方法を 2 つ以下に紹介します。

  1. コマンド ラインのデプロイメント

コマンド ラインを使用して Golang プロジェクトを直接デプロイするには、次のコマンドを実行し、ポート番号と実行可能ファイルのパスを入力する必要があります。それぞれポートと出力の後。

nohup ./output -port=8080 > app.log 2>&1 &
ログイン後にコピー

このコマンドは、Golang アプリケーションをバックグラウンドで実行し、ログを app.log ファイルに出力します。

  1. systemd サービス展開を使用する

Systemd は、Linux システムで広く使用されているシステムおよびサービス マネージャーです。 systemd を使用して Golang プロジェクトをデプロイすると、アプリケーションをより速く、より安定してデプロイできます。

app.service という名前のサービス ファイルを作成できます。このファイルには、Golang アプリケーションの実行パス、ログ パス、スタートアップの種類、必要な環境変数などの情報が含まれています。サンプル ファイルは次のとおりです。

[Unit]
Description=Golang Application Service
After=network.target
Requires=network.target
 
[Service]
ExecStart=/path/to/output -port=8080
WorkingDirectory=/path/to/
Restart=always
RestartSec=3
StartLimitBurst=10
StartLimitInterval=60s
 
StandardOutput=file:/var/log/app.log
StandardError=file:/var/log/app.log
 
[Install]
WantedBy=multi-user.target
ログイン後にコピー

systemctl サービスを有効にする前に、ファイルを /etc/systemd/system/ ディレクトリに配置し、次のコマンドを使用してサービスを有効にする必要があります。

systemctl daemon-reload
systemctl enable app.service
systemctl start app.service
ログイン後にコピー

上記のコマンドを実行すると、Golang アプリケーションを運用環境に正常にデプロイできます。

4. 一般的な問題の解決策

  1. ポートの競合

Golang プロジェクトを実行するときに、占有されているポート番号を選択すると、プログラムの起動に失敗します。解決策は、実行コマンドで空いているポート番号を指定することです。以下のコマンドでポート占有率を確認できます。

lsof -i:端口号
ログイン後にコピー
  1. MySQL データベースにアクセスできません

MySQL データベースが Golang プロジェクトで使用されているが、「そのようなホストはありません」およびその他の関連情報がプロンプト表示される場合プログラムが開始される場合、MySQL データベースが正しく構成されていない可能性があります。 MySQLデータベースが正しくインストールされているか、接続できるかを確認する必要があります。

  1. システム メモリ使用量が高すぎる

Golang プロジェクトをデプロイする際、メモリ使用量が高すぎる場合は、Golang アプリケーション自体に問題がある可能性があります。このとき、コードのロジックをチェックし、プログラムを最適化し、メモリ使用量を削減する必要があります。

この記事では、Golang プロジェクトのコンパイル、パッケージ化、デプロイ方法と、一般的な問題の解決策を紹介します。プロジェクト展開の過程で Golang 開発者に何らかの助けをもたらすことができれば幸いです。

以上がgolang のオンライン展開の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート