#はじめに
dockerコンテナ内でVSCodeを起動することができたので、方法を記したいと思います。
VSCodeの拡張機能を使ってdockerコンテナで動くコードをリモートデバッグする方法は以下の記事に載っていますが、個人的には今回紹介するようにdockerコンテナ内でVSCodeを起動する方がシンプルで好みです。
https://qiita.com/Ryuichirou/items/6327ab5012ca1729d72f
#Dockerfile
Dockerfileの内容について説明します。
###ベースイメージとワークディレクトリの指定
この部分は本筋とは関係ないので、お好きなように。
FROM nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04
WORKDIR /root
ENV HOME /root
###apt-get
必要なパッケージをapt-getでインストールします。
gdebiは、debパッケージを依存関係を解決しながらインストールするためのツールです。
RUN apt-get update && \
apt-get install -y --no-install-recommends \
wget \
git \
libssl-dev \
libbz2-dev \
libsqlite3-dev \
libreadline-dev \
zlib1g-dev \
libasound2-dev \
libxss1 \
libxtst6 \
gdebi
###VSCodeのインストール
RUN wget -O vscode-amd64.deb https://go.microsoft.com/fwlink/?LinkID=760868
RUN yes | gdebi vscode-amd64.deb
RUN rm vscode-amd64.deb
###pythonのインストール
pyenvを使ってpythonをインストールします。
と言っても、本記事の内容はpython以外の言語にも簡単に適用できるでしょうし、また、pythonのインストールはpyenv以外の仕組みを利用しても構いません。
RUN git clone https://github.com/yyuu/pyenv.git ~/.pyenv
ENV PYENV_ROOT $HOME/.pyenv
ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
RUN pyenv install 3.6.6
RUN pyenv global 3.6.6
#dockerイメージのビルドとコンテナの起動
###イメージのビルド
nvidia-docker build -t kanosawa/vscode .
###コンテナの起動
以下の記事を参考にさせていただきました。
Dockerコンテナの中でGUIアプリケーションを起動させる
xhost local:
nvidia-docker run -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-it kanosawa/vscode
#コンテナ内でVSCodeを起動する
VSCodeをsuper userで起動する場合、以下のオプションが必要なようです。
起動した後は、ポップアップに従ってPython拡張機能をインストールすれば、デバッグ実行可能になります。
code --user-data-dir
#おわりに
以上の手順で、Dockerコンテナ内でVSCodeを起動できるようになります。
書いた後に読み返してみると、タイトル通りの内容というよりは「DockerfileでVSCodeをインストールする方法」と「Dockerコンテナ内でGUIアプリケーションを起動する方法」の合わせ技でしかないですね。。。