使用Golang通过Local Git将简单Web应用部署到Azure的方法

使用Golang通过Local Git将简单Web应用部署到Azure的方法 我一直在尝试部署我的Web应用程序,之前尝试使用Docker,但在Dockerfile配置方面遇到了困难。因此我决定使用本地Git部署到Azure,但仍然存在问题。以下是我的Web应用程序仓库:https://github.com/AOhassan/GoSystemOfEquations

5 回复

谢谢,我将尝试部署到 Azure 并保持更新。

更多关于使用Golang通过Local Git将简单Web应用部署到Azure的方法的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


发现并修复了问题。原来是我模板前的斜杠在提供服务时导致的,哈哈

我已将您的应用程序进行了Docker化,请参阅 https://github.com/lutzhorn/GoSystemOfEquations/tree/dockerize

值得注意的事项:

  • 我已移除 /src 目录
  • Go应用程序被编译为静态二进制文件 app,请参阅 Makefile
  • Docker镜像基于 scratch 开始构建,未使用任何操作系统
  • 静态二进制文件和模板目录被复制到空镜像中,请参阅 Dockerfile

使用 make 构建所有内容:

$ make all

构建容器可以这样运行:

$ docker run -p 8080:8080 --rm app

我没有将镜像发布到Docker仓库,也没有尝试在Azure上运行它。

一切都能正常运行,直到我访问本地主机时出现以下情况。以下是相关图片。

这是我的文件结构。

37%20PM

由于无法在8080端口启动服务,我切换到了8084端口

59%20PM

程序运行后出现了这个情况

28%20PM

如需更多信息,请告知我

以下是使用本地Git将Go Web应用部署到Azure App Service的详细步骤和示例配置:

1. 准备Azure App Service

首先在Azure门户创建Go运行时环境的App Service:

  • 选择运行时栈:Go 1.21(或最新版本)
  • 操作系统:Linux

2. 配置应用设置

在App Service的配置中设置以下环境变量:

SCM_DO_BUILD_DURING_DEPLOYMENT=true

3. 创建部署配置文件

在项目根目录创建 .deployment 文件:

[config]
command = deploy.cmd

创建 deploy.cmd 部署脚本:

@if "%SCM_TRACE_LEVEL%" NEQ "4" @echo off

echo "开始Go应用部署..."

:: 安装依赖
echo "安装Go模块..."
go mod download

:: 构建应用
echo "构建Go应用..."
go build -o main

echo "部署完成"

4. 配置Go模块

确保项目有正确的 go.mod 文件。根据你的仓库,可能需要调整:

module github.com/AOhassan/GoSystemOfEquations

go 1.21

require (
    github.com/gin-gonic/gin v1.9.1
    // 其他依赖...
)

5. 主程序配置

创建或修改 main.go 确保监听正确的端口:

package main

import (
    "log"
    "net/http"
    "os"
)

func main() {
    port := os.Getenv("PORT")
    if port == "" {
        port = "8080"
    }
    
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("Go应用已在Azure运行"))
    })
    
    log.Printf("服务器监听端口 %s", port)
    log.Fatal(http.ListenAndServe(":"+port, nil))
}

6. 本地Git部署

# 添加Azure Git远程仓库
git remote add azure https://<your-app-name>.scm.azurewebsites.net:443/<your-app-name>.git

# 推送代码部署
git push azure main

7. 部署验证

部署完成后,访问你的App Service URL,应该能看到应用正常运行。

关键注意事项:

  • Azure会自动检测Go项目并运行 go build -o main
  • 确保编译后的二进制文件名为 main
  • 应用必须监听 PORT 环境变量指定的端口
  • 所有依赖必须在 go.mod 中明确定义

根据你的仓库代码,可能需要调整导入路径和依赖管理。部署过程中可以在Azure门户的"部署中心"查看详细日志。

回到顶部