本指南介绍如何使用两种受支持的方法编译和部署 MagicTradeBot Bot 实例: 适用于容器化环境的 Docker,以及适用于传统 Linux 服务管理的 Systemd。
🛠️ 1. 编译 Bot 实例(Golang)
MagicTradeBot 的核心采用 Go 语言编写,可为不同平台编译。
🔧 本地编译(用于 Systemd)
go build -o magictradebot main.go
这将在当前目录中生成一个可执行文件 magictradebot
。
🐳 编译并构建 Docker 镜像
在项目根目录中创建一个 Dockerfile
:
# Dockerfile
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o magictradebot main.go
# 最终镜像
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/magictradebot .
COPY config.yaml .
CMD ["./magictradebot"]
然后构建镜像:
docker build -t magictradebot-bot-instance .
🐳 2. 使用 Docker 部署 Bot 实例
步骤 1:准备配置
确保你的 config.yaml
文件在同一目录中或在运行时挂载。
步骤 2:运行容器
docker run -d \
--name=bot-bybit-01 \
-v $(pwd)/config.yaml:/app/config.yaml \
--restart=always \
magictradebot-bot-instance
使用 docker logs -f bot-bybit-01
查看实时日志。
可选:使用 Docker Compose
version: '3.9'
services:
tradingbot:
image: magictradebot-bot-instance
container_name: bot-bybit-01
restart: always
volumes:
- ./config.yaml:/app/config.yaml
🧩 3. 使用 Systemd 部署 Bot 实例
步骤 1:移动可执行文件
sudo mv magictradebot /usr/local/bin/
sudo chmod +x /usr/local/bin/magictradebot
步骤 2:创建 Systemd 单元文件
sudo nano /etc/systemd/system/magictradebot.service
[Unit]
Description=MagicTradeBot 实例
After=network.target
[Service]
ExecStart=/usr/local/bin/magictradebot
WorkingDirectory=/opt/magictradebot
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
User=ubuntu
[Install]
WantedBy=multi-user.target
步骤 3:启用并启动服务
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable magictradebot
sudo systemctl start magictradebot
查看日志
journalctl -u magictradebot -f
✅ 建议
- 📁 为每个 Bot 实例使用独立的
config.yaml
文件以便扩展 - 🔐 使用 HTTPS API,并通过环境变量安全管理密钥
- 📦 优先使用 Docker 以提高隔离性和可移植性
- 🛡️ 使用集成日志系统(如 LogDNA、Grafana Loki 等)监控 Bot 活动