我的DockerFile内容如下:
FROM golang:1.22.0 as builder
WORKDIR /app
COPY . /app/
RUN CGO_ENABLED=0 GOOS=linux go build -o main .
FROM alpine:latest
USER root
RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezone
RUN apk add ca-certificates
WORKDIR /app
COPY --from=builder /app/main .
COPY config.yaml .
CMD ["./main"]
程序入口文件如下:
// 初始化gin
gin.SetMode(gin.ReleaseMode)
r := gin.Default()
r.Use(GlobalMiddleWare()) // 跨域中间件
InitRule(r) // 加载路由
// 监听端口
log.Println(os.Getenv("PORT"))
err := r.Run(fmt.Sprintf(":%s", os.Getenv("PORT")))
if err != nil {
log.Fatal("web service error: " + err.Error())
return
}
数据库链接情况如下:
func init() {
dataSourceName := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s","root","82611645489","10.34.103.81",3306,"projenctdb")
database, err := sqlx.Open("mysql", dataSourceName)
if err != nil {
log.Println("[ERROR] Open mysql Failed,", err)
return
}
Db = database
err = Db.Ping()
if err != nil {
log.Println("[ERROR] Mysql err:", err)
return
}
Db.SetMaxOpenConns(50)
}
Redis的初始化如下:
func init() {
Pool = &redis.Pool{
MaxIdle: Config.C.Redis.MaxIdle,
MaxActive: Config.C.Redis.MaxActive,
Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp", "101.133.146.144", // 此处是我的一个开放在公网且监听了0.0.0.0的redis
redis.DialPassword("jx4iYqqNESLAUL"),
redis.DialDatabase(0),
redis.DialUseTLS(false),
)
if err != nil {
log.Println("redis connect error: %s", err.Error())
}
return c, err
},
}
_, _ = Pool.Get().Do("PING")
}
将其上传部署到微信云托管之后,构建都没有问题,最后提示
024-02-19 09:40:17 create_eks_virtual_service : succ, 2024-02-19 09:40:17 check_eks_virtual_service : process, DescribeVersion_user_error_Liveness probe failed: dial tcp 10.34.15.89:8080: connect: connection refused,
请问各位大佬怎么解决