LoginSignup
14
20

More than 5 years have passed since last update.

Docker環境内でeclipseを走らせる(noVNC)

Posted at

はじめに

DNNのライブラリなどunixで走らせたいライブラリを用いる際は,私の場合,ubuntuのデスクトップorサーバに(windows pcから)sshで繋いで環境構築したdockerのコンテナを走らせて開発していました.プログラムを走らせるだけであれば問題ないのですが,デバッグ等をやりたいとなると少し不便でした.データの前処理など計算ライブラリを使用しない処理はwindowsで実装し,残りをvimなどで実装していましたが,dockerでvncサーバを走らせることでGUIアプリケーションを動かす方法を知ったので使ってみました.

前提

サーバ:

  • ubuntu/centOS
  • docker/nvidia-dockerの環境あり

クライアント:

  • windows

要望:

  • eclipse+pydev(などのIDE)で開発したい,結果を直接ビジュアライズ(matplotlibなど)したい
  • tensorflow/chiner/caffeなどのライブラリを走らせたい(windowsには入れづらいライブラリ)
  • GPUを使いたい(cuda)

Dockerfile

dorowu/ubuntu-desktop-lxde-vncのDockerfileを参考にさせていただきました.(gitHub)

cudaへの対応

上記のdorowuさんのDockerfileを参考にさせていだきますが,cudaを使用したいのでベースイメージを変更します.幸いdorowuさんはubuntuをベースイメージに使っていますので,nvidia/cuda に変更するだけで動きました.

eclipseのインストール

eclipseはダウンロードして展開するだけでいいので,Dockerfileに以下の記述を追加しました.

eclipse
ADD http://***/eclipse-***.tar.gz /tmp
RUN tar xavf /tmp/eclipse-* -C /opt/
RUN ln -s /opt/eclipse/eclipse /usr/bin

ターミナルから起動してやります(スタートメニュー的なところに追加してないので).

javaのインストール

eclipseを走らせるためにはjavaが必要です.とくにpydevに関して,java8が入っていないとインストールが正常に完了しても使えない(メニュー等に表示されない)という問題が発生します.とりあえずcracleのjava8を入れました.

java_install
RUN apt-add-repository ppa:webupd8team/java && apt-get update
# license
RUN echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
RUN echo debconf shared/accepted-oracle-license-v1-1 seen true | debconf-set-selections

RUN apt-get install -y --force-yes oracle-java8-installer
RUN apt-get install -y --force-yes oracle-java8-set-default

eclipseのプラグイン

例えばpydevを入れるとして,本当はDockerfileに記述したいところですが...
とりあえず,GUIで操作してimageにコミットしました.まぁGUIは開発中に使うだけなのでいいかなと.いい方法があれば教えてください...
eclipseをインストールしたディレクトリをホスト側と共有orホスト側からコピーしてイメージ構築すればいいかもしれません.

開発環境の導入

上で作成したイメージを継承して各ライブラリを導入します.ベースにnvidia/cudaを使っていたイメージ(これとか)であればFROMを今回のイメージに変更するだけで良いはずです.

vncの接続

今回参考にさせていただいたイメージではnoVNCを導入しています.これはブラウザ(HTML5)からvncできるアプリケーションです.とりあえずこれで試します.クライアントソフトを使って接続もできるはずですが,ブラウザでも割と快適でした.

14
20
0

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
14
20