先编写Dockerfile和docker-compose.yml实现Go开发环境的容器化,利用air工具实现热重载,通过卷挂载同步代码,启动服务后可实时查看修改效果并自动重启,提升开发效率与环境一致性。

用Golang在Docker中搭建开发环境,核心是利用容器隔离依赖、统一运行时,并提升协作效率。关键在于编写合适的 Dockerfile、配置必要的工具支持开发流程,并通过 docker-compose 简化服务管理。
先创建一个简单的 Go 项目,便于后续构建:
my-go-app/示例 main.go:
package main初始化模块:
立即学习“go语言免费学习笔记(深入)”;
go mod init my-go-app这个 Dockerfile 面向开发,支持热重载和调试:
# 使用官方 Golang 镜像作为基础镜像说明:
为了实现代码修改后自动重启,可结合 air 工具实现热重载。
安装 air(在容器内):
# 在 Dockerfile 中添加 air 安装步骤 RUN go install github.com/cosmtrek/air@latest创建 .air.toml 配置文件(用于 air):
root = "." tmp_dir = "tmp"[build] args_bin = [] bin = "tmp/main.bin" delay = 1000 exclude_dir = ["assets", "tmp", "vendor"] exclude_file = [] exclude_regex = ["_test\.go"] exclude_unchanged = false follow_symlink = false include_ext = ["go", "tpl", "tmpl", "html"] kill_delay = "0s" log = "build-errors.log" poll = false poll_interval = 0 post_cmd = "" pre_cmd = "" rerun = false rerun_delay = 500 send_interrupt = false stop_on_error = false
[color] app = "" build = "" main = "" runner = "" watcher = ""
[misc] clean_on_exit = false
更新 Dockerfile 的 CMD:
CMD ["air"]编写 docker-compose.yml:
version: '3.8' services: app: build: . ports: - "8080:8080" volumes: - .:/app environment: - GOPATH=/go这样,宿主机修改代码会实时同步到容器,air 检测到变化自动重启服务。
运行以下命令启动服务:
docker-compose up --build看到输出 “Hello from Go in Docker!” 表示成功。修改 main.go 内容,观察容器是否自动重启。
若需进入容器调试:
docker exec -it <container_id> sh基本上就这些。这种方式既保持了本地开发的便利性,又享受了 Docker 带来的环境一致性。
以上就是如何使用Golang在Docker中搭建开发环境的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号