Go语言 让Gin在其他端口上运行

b09cbbtk  于 2023-04-27  发布在  Go
关注(0)|答案(2)|浏览(243)

bounty还有4天到期。回答此问题可获得+50声望奖励。anny123希望引起更多关注此问题。

我有这个在我的main.go文件
主程序包

import (
    "github.com/gin-gonic/gin"
    "github.com/someone/something/backend/config"
)

func main() {

    app := config.App()

    env := app.Env
    gin := gin.Default()
    
    gin.Run(":" + env.PORT)
}

其中PORT是8080
当我运行go run main.go时,它显示为Listening and serving HTTP on :8080
但当我运行gin run main.go时,它显示为Listening on port 3000
我怎么能改变端口在这里?到别的东西。我需要在端口3000上运行别的东西
更新:gin run main.go --port 8080仍然记录Listening on port 3000
更新:2 gin run --port 8080 main.go也说监听端口3000
更新:3 GIN_MODE=debug PORT=8080 gin run main.go也不工作。

bbuxkriu

bbuxkriu1#

可以使用环境变量PORT:

PORT=8080 && gin run main.go
qojgxg4l

qojgxg4l2#

resolveAddress()函数会检查环境变量:

func resolveAddress(addr []string) string {
    switch len(addr) {
    case 0:
        if port := os.Getenv("PORT"); port != "" {
            debugPrint("Environment variable PORT=\"%s\"", port)
            return ":" + port
        }
        debugPrint("Environment variable PORT is undefined. Using port :8080 by default")
        return ":8080"
    case 1:
        return addr[0]
    default:
        panic("too many parameters")
    }
}

这意味着,在一个类似Linux的shell中,你应该能够做到:

PORT=8080 gin run

您可以使用以下命令显示更多日志:

GIN_MODE=debug PORT=8080 gin run

关于你的程序(你自己的main.go),在你的go.mod中检查你的项目的名称,然后尝试:

cd /path/to/my/project
go install
which yourAPP # should be /Users/RohitB/go/bin/yourApp
GIN_MODE=debug PORT=8080 yourAPP

相关问题