Windows上でBinance Bot環境を作るメモ
このnoteの目的
Dockerなどを使った環境づくりに慣れてきたので、これまでの経験をもとに新たに環境を作り直す過程を記録しておくことにした。
前回は以下に記録したように環境をLinux上に作ったけれども、今回は手元で実験する環境としてお手軽なWindows上で作ってみる。
ハードウェアやネットワーク環境
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
16GBメモリ
約100GBの空きSSD領域
Windows 10 Home
よくあるマンション系光ファイバーサービス。100Mbpsベストエフォート。
Windowsへいろいろインストール
まずは色々と必要なソフトをインストールしていく。
Visual Studio Code
エディタ。そのほか色々なことをここでやるのでとても大事。
利用するVisual Studio Codeのプラグインは以下のとおり。全部インストールする。(新しく必要になったら随時追記する)
Docker Desktop for Windows
仮想サーバをWindows上で動かすために使う。
以下の手順に従ってインストールすれば特に問題はなかった。WSL2のセットアップがややめんどくさい。BIOSの仮想化オプションをONにするのを忘れないように。
Git for Windows
仮想サーバをまとめて作って起動するための設定ファイル群をダウンロードするために使う。
Windowsの環境変数設定
Dockerで仮想サーバをまとめて起動する際に、Windows側でAPIキーなどを環境変数に設定しておけば、仮想サーバ上で利用できるようになっていると何かと便利なので、ここでWindows側の環境変数を設定しておく。
設定した値は以下の通り。
GIT_ACCESSTOKEN : プライベートリポジトリにpushする際に使うアクセストークン
GIT_USER : gitで使うユーザー名
GIT_EMAIL : gitで使うメールアドレス
BINANCE_APIKEY : BinanceのAPIキー
BINANCE_APISECRET : BinanceのAPIシークレット
BINANCE_TESTNET_APIKEY : Binance testnetのAPIキー
BINANCE_TESTNET_APISECRET : Binance testnetのAPIシークレット
DISCORD_WEBHOOK : Discordにbotから通知を送る際に使うAPIのURL
crypto-wannabebotter-template リポジトリ
再利用しやすいように、ここにdocker-compose用の設定ファイルと、よく使うbotの基礎となるpythonスクリプトをまとめておくことにした。
まずは、gitを使ってソースコードをWindows 10上にダウンロードする。
C:\somewhere> git clone https://github.com/WannabeBotter/crypto-wannabebotter-template
サーバ (Dockerコンテナ) 群の起動
きちんとDocker DesktopとWSL2の設定ができていれば、以下のコマンドをコマンドプロンプトから入力すれば、すべての仮想サーバ (Dockerコンテナ) が起動できる…はず。
C:\somewhere> cd crypto-wannabebotter-template\docker-script
C:\somewhere\crypto-wannabebotter-template\docker-script> docker compose up -d
ハマりポイント1 : gitからダウンロードしたファイルの中でも、apt_packages.txtとpip_packages.txtの改行コードがCRLFになっているとうまく仮想サーバが起動できない。Visual Studio Codeの画面右下で、改行コードの設定を変えて上書き保存すると回避できる。この変更はファイルごとにやらなければいけない。結構長時間ハマってしまった。
一度うまく仮想サーバが起動すれば、その後はDocker DesktopのGUIから仮想サーバ群を停止・再起動したり、仮想サーバの中でWebアプリが動いている場合は、それをブラウザで開いたりできるようになる。便利。
Visual Studio CodeのDockerプラグインを使って、起動中の仮想サーバにVisual Studio Codeを接続して、リモートで内部のファイルをまるでローカルファイルを編集するようにいじることができたりもする。便利。
今のところはここまで
今のところ、上記のコマンドでは以下の二つの仮想サーバが起動するが、特にbotのソースコードが入っているわけではない。
Jupyter Lab
TimescaleDB
今までやったことの整頓をしながら、だんだん内容を拡充していくつもり。