このガイドは、node.js開発ワークフローをミラーリングするDockerコンテナ内のGOアプリケーションのライブレロードとデバッグのセットアップを示しています。 この特定のGOセットアップのオンラインリソースは不足していますが、このアプローチは、一貫したDocker環境の利点とライブレロードの効率とデバッグの力を組み合わせています。 キーの違い:
ライブレロードコードの変更でアプリケーションを再起動します。 ホットレロードは、再起動せずにメモリをパッチします。効率的な開発に不可欠なデバッグは、ログベースのトラブルシューティングを上回ります。 Dockerは、環境全体で一貫したアプリケーション動作を保証します 環境:
このガイドは、WSL(Linux用のWindowsサブシステム)でWindows 11を使用しますが、Linux(同一の手順)とMacOS(同様)に適応できます。 WSLは、ネイティブWindowsファイルシステムと比較して、その優れた速度のため、Windows Go開発に強くお勧めします。テクノロジースタック:
docker:
一貫した孤立した開発環境を提供しますこれを
でテストします dockerセットアップ(
):main.go
<code class="language-go">package main import "github.com/gofiber/fiber/v2" func main() { app := fiber.New() app.Get("/", func(c *fiber.Ctx) error { str := "Hello, World!" return c.SendString(str) }) app.Listen(":3000") }</code>
go run .
:dockerfileの場所を指定します。
:ポート3000(Webサーバー)と2345(デバッガー)を公開します
docker-compose.yml
:containerにローカル
<code class="language-yaml">api: build: context: ./api dockerfile: Dockerfile ports: - '3000:3000' - '2345:2345' stop_grace_period: 0.1s volumes: - ./api:/app networks: - internal</code>にマウントします。
build.context
ports
volumes
api
Air and Delve Configuration(/app
):
これにより、デバッグが有効になってアプリケーションの構築と実行にDelveを使用するようにAirを構成します。
api/Dockerfile
vsコードデバッグ構成():
<code class="language-dockerfile">FROM golang:1.23.2-alpine3.20 WORKDIR /app RUN go install github.com/go-delve/delve/cmd/dlv@latest RUN go install github.com/air-verse/air@latest COPY go.mod go.sum ./ RUN go mod download USER root # For development only EXPOSE 2345 EXPOSE 3000 CMD ["air", "-c", "air.toml"]</code>
これにより、Dockerコンテナで実行されているDelveデバッガーに接続するためのコードとコードが構成されます。 プロジェクトのパスに一致するようにを調整します
api/air.toml
この完全なセットアップにより、効率的なGO開発のためにDockerコンテナ内でのライブレロードとデバッグが可能になります。すべてのファイルをセットアップした後、を実行することを忘れないでください
以上がDocker コンテナ内での Go アプリケーションのライブリロードとデバッグの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。