2024年4月

# 使用scratch作为基础镜像
FROM scratch
WORKDIR /app

# 复制本地编译好的应用程序到容器中
# GOOS=linux GOARCH=amd64 CGO_ENABLED=0  go build -o ./bin/main main.go
COPY ./bin/main /app/main

# 复制配置文件和其他必要的文件到容器中
#COPY ./config.toml /app/config.toml

# 复制时区数据文件到容器中 需要把时区文件先复制到项目下
COPY ./zoneinfo/Asia/Shanghai /etc/localtime

# 设置时区环境变量
ENV TZ=Asia/Shanghai

# 运行应用程序
ENTRYPOINT ["/app/main", "-conf", "/app/config.toml"]

package server

import (    
        "embed"
    "github.com/gin-contrib/static"
    "github.com/gin-gonic/gin"
)

//go:embed static
var static embed.FS

func main() {
    r := gin.Default()
        // 创建一个没有顶层目录的FS
    webFS, err := fs.Sub(static, "static")
    if err != nil {
        panic(err)
    }
    r.NoRoute(gin.WrapH(http.FileServer(http.FS(webFS))))
    log.Fatal(r.Run(":8080")

}