Golang反射库Go-reflex 1.17.1版本解析
Golang反射库Go-reflex 1.17.1版本解析 用于自动重新编译和自动重启 Go 服务器应用程序的 Docker 镜像。现已支持 arm64。
GitHub - acim/go-reflex: 用于自动重新编译和自动重启 Go 服务器应用程序的 Docker 镜像
用于自动重新编译和自动重启 Go 服务器应用程序的 Docker 镜像 - GitHub - acim/go-reflex: 用于自动重新编译和自动重启 Go 服务器应用程序的 Docker 镜像
更多关于Golang反射库Go-reflex 1.17.1版本解析的实战教程也可以访问 https://www.itying.com/category-94-b0.html
3 回复
支持 linux/amd64 和 linux/arm64 平台。
更多关于Golang反射库Go-reflex 1.17.1版本解析的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
已更新至 Go 1.17.2 
这是一个关于go-reflex工具的有用更新。go-reflex是一个用于Go开发的热重载工具,1.17.1版本增加了对arm64架构的支持,这对于在Apple Silicon或ARM服务器上开发的开发者来说特别重要。
基本使用示例
// 假设这是你的main.go文件
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World! Server is running with go-reflex hot reload.")
})
fmt.Println("Server starting on :8080")
http.ListenAndServe(":8080", nil)
}
Dockerfile配置示例
# 使用go-reflex基础镜像
FROM acim/go-reflex:1.17.1
# 设置工作目录
WORKDIR /app
# 复制go.mod和go.sum文件
COPY go.mod go.sum ./
# 下载依赖
RUN go mod download
# 复制源代码
COPY . .
# 使用reflex运行应用
CMD ["reflex", "-r", "\\.go$", "-s", "--", "go", "run", "main.go"]
docker-compose.yml配置
version: '3.8'
services:
app:
build: .
ports:
- "8080:8080"
volumes:
- .:/app
environment:
- GIN_MODE=debug
platform: linux/arm64 # 指定arm64架构
多架构构建支持
go-reflex 1.17.1现在支持多架构构建:
# 构建并运行arm64版本
docker build --platform linux/arm64 -t myapp:arm64 .
docker run --platform linux/arm64 -p 8080:8080 myapp:arm64
# 或者使用buildx进行多架构构建
docker buildx build --platform linux/amd64,linux/arm64 -t myapp:multiarch .
开发环境中的使用
在开发环境中,你可以直接使用reflex命令:
# 安装reflex
go install github.com/acim/go-reflex@latest
# 运行应用并监控文件变化
reflex -r '\.go$' -s -- go run main.go
# 监控特定目录
reflex -r '\.go$' -s -g 'app/**/*.go' -- go run main.go
这个更新使得go-reflex在多种硬件平台上都能正常工作,特别是在使用Apple Silicon Mac的开发者群体中,arm64支持变得尤为重要。

