在 Linux 上部署 Golang 应用整体不难,而且相比 Java、Python 等语言,Go 的部署通常更简单。下面从几个角度给你说明一下:
Go 可以交叉编译,直接生成 Linux 下的可执行文件:
GOOS=linux GOARCH=amd64 go build -o app main.go
只要目标 Linux 系统是常见发行版(CentOS / Ubuntu / Debian),基本都能直接跑。
你可以:
./app
适合:
示例:
# /etc/systemd/system/myapp.service
[Unit]
Description=Go App
After=network.target
[Service]
ExecStart=/opt/myapp/app
WorkingDirectory=/opt/myapp
User=appuser
Restart=always
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start myapp
systemctl enable myapp
✅ 稳定、自动重启、日志统一管理
FROM golang:1.22 as build
WORKDIR /app
COPY . .
RUN go build -o app
FROM alpine
COPY --from=build /app/app /app
CMD ["/app"]
适合:
虽然不难,但新手可能会遇到:
权限问题
交叉编译环境
配置管理
但这些都属于“运维基本功”,不算 Go 本身的问题。
Linux 部署 Golang:难度低,坑少,适合生产。
如果你是:
如果你愿意,我可以: