通过 Docker 或 Systemd 部署 MagicTradeBot 机器人

本指南介绍如何使用两种受支持的方法编译和部署 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 活动

📎 Related Topics