はじめに
プログラムを作る際に、デバックを迅速に行えることは重要です。Visual Studio CodeがDockerコンテナ内のリモートデバッグ機能をサポートしたということで、早速ABEJA Platform上で学習コードをデバッグしてみました。本記事ではその方法について説明します。なお、本記事はプラットフォームの使い方を一通り学んだ方を対象とし、用語の説明などは省略します。
VSCodeのインストール
2019年5月現在、VSCodeのRemote Containers機能は、VSCodeではなく、VSCode Insidersという新機能をいち早く試せるバージョンでしか利用できませんので、そちらをダウンロードして利用しましょう。Macならば以下でも使えるらしいです。
$ brew cask install visual-studio-code-insiders
RemoteContainerをインストール
以下をインストールするだけです。
Dockerfileの作成
以下のようなDockerfileを作成しましょう。USER_ID
、TOKEN
、ORGANIZATION_ID
はプラットフォームのコンソールに表示されているものを使いましょう。DATASETS
は学習データセットのIDを入れます。
1 FROM abeja/all-cpu:18.10
2
3 ENV ABEJA_PLATFORM_USER_ID user-XXXXXXXXXXXXXXXXXXXXX
4 ENV ABEJA_PLATFORM_PERSONAL_ACCESS_TOKEN XXXXXXXXXXXXXXXXXXXXXXXXXXX
5 ENV ABEJA_ORGANIZATION_ID XXXXXXXXXXXXXXXXX
6 ENV DATASETS '{"train":"XXXXXXXXXXXXXXX"}'
7
8 RUN pip install -U abeja-sdk abejacli
9
10 RUN mkdir /app
Docker Containerを立ち上げ
ここではコードが/home/user/workspace
に保存されていることとしましょう。対象のディレクトリをマウントしてコンテナを立ち上げておきます。
$ docker build -t platform_container .
$ docker run -it --rm -v /home/user/workspace:/app platform_container:latest
コンテナ内にアクセス
VSCode Insidersを起動し、F1からRemote-Containers: Attach to Running Container
を選択し、先ほど起動したコンテナを選択します。すると、新しくVSCodeの画面が立ち上がります。
プロジェクトの初期設定
先ほどコードを/app
にマウントしたので、File
のOpen...
メニューから、そのディレクトリを開きましょう。以下のような画面になっているかと思います。
Pythonのデバッグをするために、PythonのExtensionをインストールしましょう。
続いて、ABEJA Platformの仕組みでデバッグするためにConfigurationを設定します。以下のメニューを選択し、Pythonを選択しましょう。
すると、launch.json
の編集画面に移るので以下のように修正します。
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "/usr/local/bin/abeja-model",
"args": ["train", "--handler", "main:handler"],
"console": "integratedTerminal"
}
]
}
デバッグの実行
準備はできたので、F5を押してデバッグできます!
まとめ
VSCodeを使ってABEJA Platformのコードをデバッグする手順について書きました。良きABEJA Platformライフを!