ubuntu

打包Golang应用Ubuntu怎么选

小樊
61
2025-09-06 18:00:24
栏目: 编程语言

在Ubuntu上打包Golang应用可根据需求选择以下方式,步骤及工具参考自1-8

一、基础打包(二进制文件)

  1. 安装Go环境
    sudo apt update && sudo apt install golang-go  
    
  2. 编译应用
    • 生成可执行文件:
      go build -o myapp main.go  # 指定输出文件名  
      
    • 静态编译(无外部依赖):
      CGO_ENABLED=0 go build -o myapp main.go  
      
  3. 压缩体积(可选)
    安装upx压缩工具:
    sudo apt install upx  
    upx --best myapp  # 压缩二进制文件  
    

二、进阶打包(脚本/服务)

  1. 启动脚本
    创建start.sh
    #!/bin/bash  
    ./myapp  
    
    赋予执行权限:
    chmod +x start.sh  
    
  2. Systemd服务(后台运行)
    创建服务文件/etc/systemd/system/myapp.service
    [Unit]  
    Description=My Golang App  
    After=network.target  
    [Service]  
    ExecStart=/path/to/myapp  
    Restart=always  
    [Install]  
    WantedBy=multi-user.target  
    
    启用并启动服务:
    sudo systemctl enable myapp && sudo systemctl start myapp  
    

三、跨平台/部署优化

  1. 交叉编译(生成其他平台二进制)
    GOOS=linux GOARCH=amd64 go build -o myapp-linux-amd64 main.go  # 例如生成Linux 64位  
    
  2. Docker容器化(推荐部署)
    创建Dockerfile
    FROM golang:1.21 AS builder  
    WORKDIR /app  
    COPY . .  
    RUN go mod download && CGO_ENABLED=0 go build -o myapp .  
    FROM scratch  
    COPY --from=builder /app/myapp /myapp  
    ENTRYPOINT ["/myapp"]  
    
    构建并运行:
    docker build -t myapp .  
    docker run -d -p 8080:8080 myapp  
    

四、分发与签名

工具推荐

根据实际需求选择方案,基础场景可选二进制+脚本,生产环境推荐Docker容器化。

0
看了该问题的人还看了