Golang反射库Go-reflex 1.17.1版本解析

Golang反射库Go-reflex 1.17.1版本解析 用于自动重新编译和自动重启 Go 服务器应用程序的 Docker 镜像。现已支持 arm64。

GitHub

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 :slightly_smiling_face:

这是一个关于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支持变得尤为重要。

回到顶部