在Linux上部署Golang项目可参考以下步骤:
安装Golang环境
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。准备项目
go mod管理依赖(初始化命令:go mod init <模块名>),通过go mod tidy下载依赖。构建可执行文件
go build -o <输出文件名> main.go,生成可执行文件。GOOS=linux GOARCH=amd64指定目标环境(如GOOS=linux GOARCH=amd64 go build -o app)。部署方式
./<可执行文件>启动服务,适用于开发测试。nohup ./<可执行文件> > log.log 2>&1 &,将输出重定向到日志文件。/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-reload、sudo systemctl start <服务名>、sudo systemctl enable <服务名>完成部署。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 <镜像名>。配置防火墙
ufw或iptables开放对应端口(如sudo ufw allow 8080)。注意事项:
-ldflags="-s -w"优化二进制体积,或静态编译避免依赖问题。参考来源: