1. はじめに
テクノロジーの進歩とインターネットの普及に伴い、オンラインで展開する必要のあるアプリケーションやサービスがますます増えています。このプロセスでは、適切なプログラミング言語を選択することも必要です。 Golang は、オープンソース プログラミング言語として、その速度、効率性、安定性が高く評価されています。この記事では、Golang のオンライン展開の手順と一般的な問題の解決策を詳しく紹介します。
2. Golang プロジェクトのコンパイルとパッケージ化
Golang プロジェクトをデプロイする前に、それをコンパイルしてバイナリ実行可能ファイルにパッケージ化します。以下に 2 つの異なるコンパイル方法を紹介します。
Go 言語に組み込まれている go build コマンドを使用して、コンパイルとパッケージ化を完了します。コマンドの形式は次のとおりです。main.go はエントリファイル名です。
go build -o output main.go
コマンドを実行すると、output という名前の実行可能ファイルが現在のディレクトリに生成されます。
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 つ以下に紹介します。
コマンド ラインを使用して Golang プロジェクトを直接デプロイするには、次のコマンドを実行し、ポート番号と実行可能ファイルのパスを入力する必要があります。それぞれポートと出力の後。
nohup ./output -port=8080 > app.log 2>&1 &
このコマンドは、Golang アプリケーションをバックグラウンドで実行し、ログを app.log ファイルに出力します。
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. 一般的な問題の解決策
Golang プロジェクトを実行するときに、占有されているポート番号を選択すると、プログラムの起動に失敗します。解決策は、実行コマンドで空いているポート番号を指定することです。以下のコマンドでポート占有率を確認できます。
lsof -i:端口号
MySQL データベースが Golang プロジェクトで使用されているが、「そのようなホストはありません」およびその他の関連情報がプロンプト表示される場合プログラムが開始される場合、MySQL データベースが正しく構成されていない可能性があります。 MySQLデータベースが正しくインストールされているか、接続できるかを確認する必要があります。
Golang プロジェクトをデプロイする際、メモリ使用量が高すぎる場合は、Golang アプリケーション自体に問題がある可能性があります。このとき、コードのロジックをチェックし、プログラムを最適化し、メモリ使用量を削減する必要があります。
この記事では、Golang プロジェクトのコンパイル、パッケージ化、デプロイ方法と、一般的な問題の解決策を紹介します。プロジェクト展開の過程で Golang 開発者に何らかの助けをもたらすことができれば幸いです。
以上がgolang のオンライン展開の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。