ホームページ >バックエンド開発 >Golang >Golang のデプロイメントとデバッグ方法の詳細な紹介

Golang のデプロイメントとデバッグ方法の詳細な紹介

PHPz
PHPzオリジナル
2023-04-25 16:16:09786ブラウズ

近年、Golang はますます人気のある言語となり、そのアプリケーションはますます普及し、多くの開発者の注目を集めています。しかし、Golang を初めて使用する開発者にとって、デプロイとデバッグは解決が難しい問題であるため、この記事では Golang のデプロイとデバッグ方法を詳しく紹介します。

1. デプロイメント

  1. コンパイル

Golang はコンパイル済み言語であり、記述されたコードは実行可能ファイルにコンパイルする必要があります。走る。コンパイルには、静的コンパイルと動的コンパイルの 2 つの方法があります。静的コンパイルでは、プログラムに必要なライブラリが実行可能ファイルにパッケージ化されます。実行可能ファイルのサイズは大きくなりますが、実行時に外部ライブラリに依存する必要はありません。一方、動的コンパイルでは、実行時にライブラリ ファイルを動的にリンクする必要があり、そのサイズは実行可能ファイルのサイズは小さくなりますが、外部ライブラリに依存する必要があります。

静的コンパイル:

$ go build -o main main.go

動的コンパイル:

$ go build -o main main.go -ldflags "-linkmode=external"

このうち、-linkmode=external パラメータは、動的リンクに必要なライブラリ ファイルを示します。

  1. 環境変数

Golang では、デフォルトのパッケージ管理ツールは go mod であるため、コードの保存パスとダウンロード ソースを指定するには環境変数を設定する必要があります。 Linux システムでは、~/.bash_profile ファイルを変更することで環境変数を設定できます。

export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
export GOSUMDB=sum.golang.google.cn

このうち、GO111MODULE とは、 go mod;GOPROXY は go get 時に使用されるダウンロード ソースを表し、GOSUMDB はダウンロードされたコード パッケージが正式にリリースされたバージョンであるかどうかの検証を表します。

  1. Docker

Docker は、Golang プログラムをイメージにパッケージ化し、あらゆるプラットフォームに簡単にデプロイできるようにするのに役立ちます。まず、Dockerfile を作成する必要があります:

FROM golang:1.15.0-alpine
WORKDIR /app
COPY . .
RUN go build -o main .
CMD [" /app /main"]

このうち、FROM はミラーソースを指定し、WORKDIR は作業ディレクトリを指定します。COPY は現在のフォルダー内のファイルをミラーにコピーします。RUN はコンパイルコマンドを実行します。CMD は実行コマンドを指定します。 。

次に、次のコマンドを実行します。

$ docker build -t myapp .
$ docker run -p 8080:8080 myapp

このうち、-t は、ラベル名; -p はポートマッピングを指定します。

2. デバッグ

  1. デバッグ ツール

Golang にはデバッグ ツールのセットが組み込まれており、CPU の分析に役立つ go ツール pprof を使用できます。およびメモリ使用状況。まず、pprof パッケージをコードにインポートし、パフォーマンス分析コードを追加する必要があります。

import (

"net/http"
_ "net/http/pprof"

)

func main() {

go func() {
    http.ListenAndServe("0.0.0.0:6060", nil)
}()
// your code here

}

このうち、pprof はインポート時に呼び出す必要がなく、ルートを自動的に登録します。次に、次のコマンドを実行します。

$ go tool pprof http://localhost:6060/debug/pprof/profile

このコマンドは、CPU 使用率の分析結果をコンソールに出力します。

  1. デバッガ

プログラムで例外が発生した場合、デバッガを使用してデバッグできます。 Golang には多くのデバッガーがありますが、ここでは 2 種類を紹介します:

GDB デバッガー:

コンパイル時に -g パラメーターを指定してデバッグ情報を追加し、次のコマンドを実行する必要があります。

# #$ gdb myapp

(gdb) Break main.main
(gdb) run

ブレークポイントを例に取ると、実行がブレークポイントに到達すると実行が停止され、デバッグモードに入ります。

Delve デバッガー:

Delve は、リモート デバッグとネットワーク デバッグをサポートする強力なデバッガーです。まず、Delve をインストールする必要があります:

$ go get -u github.com/go-delve/delve/cmd/dlv

次に、次のコマンドを実行してデバッガーを開始します。

$ dlv debug myapp

このコマンドはデバッガーを起動し、デバッグに使用できる REPL (読み取り-評価-印刷ループ) インターフェイスを開きます。

概要

この記事では、Golang のデプロイ方法とデバッグ方法 (コンパイル、環境変数、Docker、pprof、GDB、Delve) を紹介します。開発者が Golang スキルをよりよく習得するのに役立つことを願っています。

以上がGolang のデプロイメントとデバッグ方法の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。