Docker または Systemd を使用した MagicTradeBot ボットのデプロイ

このガイドでは、MagicTradeBot Bot Instance をコンパイルおよびデプロイする方法を説明します。対応している 2 つの方法(Docker によるコンテナ環境用、Systemd による従来の Linux サービス管理)を紹介します。


🛠️ 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 Instance
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 を使用してスケーラビリティを確保
  • 🔐 API 通信に HTTPS を使用し、環境変数で機密情報を管理
  • 📦 分離性と移植性のために Docker の使用を推奨
  • 🛡️ LogDNA、Grafana Loki などの統合ロギングツールでボットアクティビティを監視

📎 Related Topics