Perbezaan utama:
Live-Reloading Mulakan semula aplikasi pada perubahan kod; hot-reloading memori patch tanpa dimulakan semula. Debugging, penting untuk pembangunan yang cekap, melepasi penyelesaian masalah berasaskan log. Docker memastikan tingkah laku aplikasi yang konsisten merentasi persekitaran. Alam Sekitar:
Panduan ini menggunakan Windows 11 dengan WSL (Subsistem Windows untuk Linux) tetapi boleh disesuaikan dengan Linux (langkah yang sama) dan macOS (serupa). WSL sangat disyorkan untuk pembangunan Windows Go kerana kelajuan unggulnya berbanding dengan sistem fail Windows asli.Stack Teknologi:
Docker:
Golang Server (contoh serat):
Buat :
main.go
uji ini dengan
<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 .
persediaan docker (
docker-compose.yml
<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
tempatan ke volumes
api
/app
dockerfile (
api/Dockerfile
Konfigurasi udara dan menyelidiki (
<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>
ini mengkonfigurasi udara untuk menggunakan Delve untuk membina dan menjalankan aplikasi dengan debugging didayakan.
api/air.toml
vs code debug configuration (
<code class="language-toml">root = "." tmp_dir = "tmp" [build] full_bin = "dlv debug --build-flags=\"-gcflags='all=-N -l'\" --listen 0.0.0.0:2345 --headless --continue --accept-multiclient --output=dist/debug"</code>
ini mengkonfigurasi kod vs untuk menyambung ke delugger delve yang berjalan dalam bekas Docker. Laraskan
untuk memadankan jalan projek anda.
api/.vscode/launch.json
Persediaan lengkap ini membolehkan reloading langsung dan debug dalam bekas Docker untuk pembangunan GO yang cekap. Ingatlah untuk menjalankan selepas menubuhkan semua fail.
Atas ialah kandungan terperinci Aplikasi Live-Reload and Debugging Go dalam bekas Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!