linux

Golang项目如何在Linux上部署

小樊
40
2025-08-11 12:22:13
栏目: 编程语言

在Linux上部署Golang项目可参考以下步骤:

  1. 安装Golang环境

    • 下载对应系统的Go安装包(如go1.21.0.linux-amd64.tar.gz),解压至/usr/local
      wget https://golang.org/dl/go1.21.0.linux-amd64.tar.gz && sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
    • 配置环境变量:在~/.bashrc中添加export PATH=$PATH:/usr/local/go/bin,执行source ~/.bashrc并验证go version
  2. 准备项目

    • 确保项目使用go mod管理依赖(初始化命令:go mod init <模块名>),通过go mod tidy下载依赖。
  3. 构建可执行文件

    • 在项目目录执行go build -o <输出文件名> main.go,生成可执行文件。
    • 如需跨平台编译,使用GOOS=linux GOARCH=amd64指定目标环境(如GOOS=linux GOARCH=amd64 go build -o app)。
  4. 部署方式

    • 直接运行:通过./<可执行文件>启动服务,适用于开发测试。
    • 后台运行:使用nohup ./<可执行文件> > log.log 2>&1 &,将输出重定向到日志文件。
    • systemd服务
      • 创建服务文件/etc/systemd/system/<服务名>.service,内容示例:
        [Unit]  
        Description=Go Application  
        After=network.target  
        [Service]  
        User=your_user  
        WorkingDirectory=/path/to/project  
        ExecStart=/path/to/<可执行文件>  
        Restart=always  
        [Install]  
        WantedBy=multi-user.target  
        
      • 执行sudo systemctl daemon-reloadsudo systemctl start <服务名>sudo systemctl enable <服务名>完成部署。
    • Docker部署
      • 编写Dockerfile,示例:
        FROM golang:1.21-alpine AS builder  
        WORKDIR /app  
        COPY . .  
        RUN go build -o app .  
        FROM alpine:latest  
        COPY --from=builder /app/app /usr/local/bin/app  
        EXPOSE 8080  
        CMD ["app"]  
        
      • 构建并运行:docker build -t <镜像名> .docker run -p 8080:8080 <镜像名>
  5. 配置防火墙

    • 若需外部访问,使用ufwiptables开放对应端口(如sudo ufw allow 8080)。

注意事项

参考来源:

0
看了该问题的人还看了