LoginSignup
20
36

More than 5 years have passed since last update.

Dockerコンテナ内でVSCodeを起動する(Ubuntu)

Last updated at Posted at 2018-08-17

はじめに

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アプリケーションを起動する方法」の合わせ技でしかないですね。。。

20
36
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
36