部署Golang编译后的二进制文件有多种方法,以下是一些常见的部署方式:
直接运行二进制文件
scp等工具将二进制文件上传到服务器。GOOS=linux GOARCH=amd64 go build -o myapp
scp myapp user@server:/path/to/app
chmod +x /path/to/app/myapp
/path/to/app/myapp
使用systemd管理服务
systemd服务文件,例如/etc/systemd/system/myapp.service。[Unit]
Description=My Golang Application
After=network.target
[Service]
Type=simple
User=appuser
WorkingDirectory=/path/to/app
ExecStart=/path/to/app/myapp
Restart=always
RestartSec=5
Environment="ENV_VAR=value"
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
使用Supervisor管理进程
/etc/supervisor/conf.d/myapp.conf。[program:myapp]
command=/path/to/app/myapp
directory=/path/to/app
user=appuser
autostart=true
autorestart=true
stderr_logfile=/var/log/myapp.err.log
stdout_logfile=/var/log/myapp.out.log
environment=ENV_VAR="value"
sudo supervisorctl update
sudo supervisorctl start myapp
容器化部署(Docker)
Dockerfile。FROM golang:alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp .
FROM alpine
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
docker build -t myapp .
docker run -d -p 8080:8080 --name myapp myapp
GOOS=linux GOARCH=amd64 go build -o myapp-linux
go:embed或packr将静态资源编译进二进制。scp将二进制文件复制到远程服务器并运行。通过以上步骤,你可以根据具体需求选择合适的部署方式,将Golang编译后的二进制文件部署到不同的环境中。