1. 安装Go语言环境
在Debian系统上部署Go应用的第一步是安装Go语言环境,可选择包管理器安装(简单快捷)或手动下载安装(版本可控)。
sudo apt update && sudo apt install golang-go
https://golang.org/dl/)获取最新Linux版本安装包(如go1.22.0.linux-amd64.tar.gz);/usr/local目录:sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
③ 配置环境变量:编辑~/.profile(或~/.bashrc),添加以下内容:export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
④ 使配置生效:source ~/.profile
go version,若输出Go版本信息(如go version go1.22.0 linux/amd64),则说明安装成功。2. 编译Go项目
进入项目目录(包含main.go入口文件),执行go build命令生成可执行文件:
cd /path/to/your/project
go build -o myapp # -o指定输出文件名(默认为项目目录名)
若项目使用Go模块(go.mod文件),需先初始化模块(go mod init <module-name>)并下载依赖(go mod tidy)。
3. 使用systemd管理服务(推荐)
为了让Go应用在后台持续运行并实现开机自启,建议使用systemd创建服务。
sudo nano /etc/systemd/system/myapp.service
[Unit]
Description=My Go Application
After=network.target
[Service]
User=your_username # 替换为运行服务的用户(如ubuntu)
WorkingDirectory=/path/to/your/project # 项目目录
ExecStart=/path/to/your/project/myapp # 可执行文件路径
Restart=always # 崩溃后自动重启
Environment=PORT=8080 # 设置环境变量(如端口)
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload # 重新加载systemd配置
sudo systemctl start myapp # 启动服务
sudo systemctl enable myapp # 开机自启
sudo systemctl status myapp # 检查运行状态(若显示“active (running)”则表示成功)
4. 使用Docker容器化部署(可选)
若需要环境一致性或简化部署流程,可使用Docker容器化Go应用。
Dockerfile,内容如下(推荐使用多阶段构建减少镜像体积):# 构建阶段:使用官方Go镜像
FROM golang:1.22 as builder
WORKDIR /app
COPY go.mod go.sum ./ # 复制依赖文件
RUN go mod download # 下载依赖
COPY . . # 复制项目文件
RUN CGO_ENABLED=0 go build -o myapp # 静态编译(无CGO依赖)
# 运行阶段:使用Alpine轻量级镜像
FROM alpine:latest
RUN apk --no-cache add ca-certificates # 安装CA证书(支持HTTPS)
WORKDIR /root/
COPY --from=builder /app/myapp . # 复制编译后的二进制文件
EXPOSE 8080 # 暴露端口
CMD ["./myapp"] # 启动命令
docker build -t myapp . # 构建镜像(标签为“myapp”)
docker run -d -p 8080:8080 --name myapp-container myapp # 运行容器(映射端口8080)
docker ps # 查看容器状态(若显示“Up”则表示运行中)
curl http://localhost:8080 # 测试接口(替换为项目实际端口)
注意事项
apt upgrade golang-go或手动下载新版本),修复安全漏洞并提升性能。