>本指南演示了设置docker容器中的GO应用程序的实时重载和调试,以镜像Node.js开发工作流程。 虽然此特定GO设置的在线资源很少,但这种方法将一致的Docker环境的好处与实时重载的效率和调试的力量相结合。
>密钥差异: live-realoading在代码更改上重新启动应用程序; >热重载
修补了不重新启动的内存。调试,对于有效开发至关重要,超过了基于日志的故障排除。 Docker确保跨环境的应用程序行为一致。 >
>环境:本指南使用Windows 11带有WSL(Windows子系统的Linux),但适用于Linux(相同的步骤)和MACOS(相似)。 强烈建议Windows Go开发WSL,因为它的速度与本机Windows File System相比。
技术堆栈:
- > docker:提供了一个一致且孤立的开发环境。 >
- >空气:>一个轻巧的GO工具,用于实时填充。 Nodemon或Inotify-Tool等替代方案不是特定的。 >
- delve:强大的GO调试器与诸如VS代码之类的IDE集成。
>
Golang Server(光纤示例):
> 创建:
main.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") }对此进行测试
go run .
> docker设置(
docker-compose.yml
api: build: context: ./api dockerfile: Dockerfile ports: - '3000:3000' - '2345:2345' stop_grace_period: 0.1s volumes: - ./api:/app networks: - internal>
- :露出端口3000(Web服务器)和2345(调试器)。
build.context
- :将本地
ports
目录安装到容器中。 。
-
volumes
api
> dockerfile(/app
):
api/Dockerfile
空气和delve配置():
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"]
这将配置空气使用Delve启用了启用调试的应用程序。
在
api/air.toml
此配置VS代码以连接到Docker容器中运行的Delve调试器。 调整以匹配您的项目的路径。
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"这个完整的设置可以在Docker容器中进行实时重载和调试,以进行有效的GO开发。请记住在设置所有文件后运行
。
>以上是在 Docker 容器内实时重新加载和调试 Go 应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!

Go语言的核心特性包括垃圾回收、静态链接和并发支持。1.Go语言的并发模型通过goroutine和channel实现高效并发编程。2.接口和多态性通过实现接口方法,使得不同类型可以统一处理。3.基本用法展示了函数定义和调用的高效性。4.高级用法中,切片提供了动态调整大小的强大功能。5.常见错误如竞态条件可以通过gotest-race检测并解决。6.性能优化通过sync.Pool重用对象,减少垃圾回收压力。

Go语言在构建高效且可扩展的系统中表现出色,其优势包括:1.高性能:编译成机器码,运行速度快;2.并发编程:通过goroutines和channels简化多任务处理;3.简洁性:语法简洁,降低学习和维护成本;4.跨平台:支持跨平台编译,方便部署。

关于SQL查询结果排序的疑惑学习SQL的过程中,常常会遇到一些令人困惑的问题。最近,笔者在阅读《MICK-SQL基础�...

golang ...

Go语言中如何对比并处理三个结构体在Go语言编程中,有时需要对比两个结构体的差异,并将这些差异应用到第�...

GoLand中自定义结构体标签不显示怎么办?在使用GoLand进行Go语言开发时,很多开发者会遇到自定义结构体标签在�...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中