日本語対応Eclipseが入ったdockerコンテナを作ってみた(CentOS7編)

環境
Windows 10 Pro 1709(16299.192)
Docker version 17.12.0-ce, build c97c6d6
CentOS Linux release 7.4.1708 (Core)
MobaXterm Persomal Edition Build 3582
Eclipse Installer version: 1.7.0 Build 3059(4.7 oxygen)
Pleiades-Eclipse日本語化プラグイン 2017.10.20版

## はじめに
Dockerイメージ「centosjp」を元に、Eclipseをインストールした「dev_eclipse」イメージを作成します。
Dockerイメージ「centosjp」の作り方は、[Window10に日本語対応CentOS7のdockerコンテナを作ってみた](https://qiita.com/0ashina0/items/f8b960e822a40a6a2eed)を参照。
MobaXtermのインストール方法は、[EclipseをインストールしたDockerイメージを作ってみた](https://qiita.com/0ashina0/items/f56f35b59c98800b801f)を参照。
EUC-JPの文字を含んだC++のソースコードをコンパイルできる環境を作ります。

メモ
　　・Eclipse直接の日本語入力ができない。IMEが半角となってしまう。
　　　　☞　(暫定対応)Windowsのメモ帳等で入力した日本語をコピペする。
　　・一定時間イベントがないと、Eclipseが強制停止してしまう。
　　　　☞　(暫定対応)セッションタイムアウトが起きないよう、xeyesを起動しておく

```
yum install xeyes
xeyes &
```
　　・Gktのエラーメッセージが出力される。

```
(Eclipse:261): Gtk-WARNING **: Negative content width -1 (allocation 1, extents 1x1) while allocating gadget (node trough, owner GtkProgressBar)

(Eclipse:261): Gtk-CRITICAL **: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar
```
　　　　☞　(解決)起動する前に、export SWT_GTK3=0　とするとエラーがでなくなる。

```https://www.eclipse.org/forums/index.php/t/1081230/
export SWT_GTK3=0
./eclipse
```

## １．「Dockerfile」を作成

```:Dockerfile
FROM centosjp
LABEL maintainer "michiru <0ashina0@gmail.com>"

#キャッシュクリア
RUN yum clean all

#"Development and Creative Workstation"グループのインストール
RUN yum -y install deltarpm
RUN yum -y groupinstall "Development and Creative Workstation"

#Eclipseダウンロード
RUN wget -q -O /tmp/eclipse-inst-linux64.tar.gz "https://www.eclipse.org/downloads/download.php?file=/oomph/epp/oxygen/R/eclipse-inst-linux64.tar.gz&mirror_id=1"
RUN tar xavf /tmp/eclipse-* -C /opt/
RUN ln -s /opt/eclipse-installer /usr/bin

# 日本語プラグインをダウンロード
ADD http://ftp.jaist.ac.jp/pub/mergedoc/pleiades/build/stable/pleiades.zip /tmp
RUN unzip /tmp/pleiades.zip -d /tmp

# gccのインストール
RUN yum -y install gcc
RUN yum -y install gcc-c++
````

## ２．「Dockerイメージ」devの作成(Eclipseインストール直前のイメージ)

```
PS C:\Users\UserName> docker build ./ -t dev
```

## ３．「Dockerコンテナ」の作成＆起動

```
PS C:\Users\UserName> docker run -it -e DISPLAY=<ホストのIPアドレス>:0.0 dev

例) docker run -it -e DISPLAY=192.168.11.12:0.0 dev
```

## ４．Eclipseのインストール

```:CentOS
[root@275f75a472cb ~]# /usr/bin/eclipse-installer/eclipse-inst
```
![eclipse.png](https://qiita-image-store.s3.amazonaws.com/0/214982/13e6facc-ed20-7bfe-516d-37dc77bd4575.png)



Refer to [Eclipse IDE Downloads](http://www.eclipse.org/downloads/eclipse-packages/?show_instructions=TRUE#page-download)

## ５．日本語プラグインの追加

```
[root@275f75a472cb /]# cp -r /plugins/* /root/eclipse/cpp-oxygen/eclipse/plugins/
[root@275f75a472cb /]# cp -r /features/* /root/eclipse/cpp-oxygen/eclipse/features/
```

## ６．日本語プラグインの読み込みの設定追加

```eclipse.ini
```
![eclipse_ini.png](https://qiita-image-store.s3.amazonaws.com/0/214982/cf7f1a90-9d60-1ab5-3494-f8d4ff0facb9.png)

## ７．起動

```
/root/eclipse/cpp-oxygen/eclipse/eclipse
```

## ８．プロジェクト作成

ファイル->新規->C++プロジェクト
![new_project.png](https://qiita-image-store.s3.amazonaws.com/0/214982/751c3a75-7ea6-8a01-b020-c5cc18fcf0a3.png)


## ９．ビルド

（プロジェクト上で右メニュ）->プロジェクトのビルド
![build.png](https://qiita-image-store.s3.amazonaws.com/0/214982/4fb7d1a5-f924-13f7-3025-0589d0729698.png)


## １０．実行

実行アイコンクリック
![run.png](https://qiita-image-store.s3.amazonaws.com/0/214982/f1194cd9-c211-780e-1875-303dac99d107.png)

## １１．結果
![result.png](https://qiita-image-store.s3.amazonaws.com/0/214982/0bb11187-da44-694f-1f9e-fca44732ae0e.png)


## １２．日本語入力（UTF-8）

日本語を入力して実行
（Window上のメモ帳に日本語入力したものを、Copy＆Pasteしている。）
![eclipse_jp.png](https://qiita-image-store.s3.amazonaws.com/0/214982/d41b7eb6-2072-cdd4-24db-4bc5cd1bbafc.png)

CentOSがUTF-8なので、UTF-8でファイルが作成される。
ファイルのプロパティーで確認する(ファイルを選択し「Alt+Enter」)と、UTF-8になっている。
![file_prop.png](https://qiita-image-store.s3.amazonaws.com/0/214982/dcff0aaa-fb58-1514-9575-68e53570d883.png)
![eclipse_utf8.png](https://qiita-image-store.s3.amazonaws.com/0/214982/2023ae02-0d2f-4e6a-edd0-27ba670406a8.png)

## １３．日本語入力（EUC-JP）
プロジェクトの文字コードをEUC-JPに変更
　　プロジェクトを選択し「Alt+Enter」。テキストファイルエンコードをEUC-JPを入力。（プルダウンにはないので、直接入力する。)
![eclipse_euc.png](https://qiita-image-store.s3.amazonaws.com/0/214982/ad7f4c01-0011-e9c1-cec5-dbd5509f9670.png)
![eclipse_utf8err.png](https://qiita-image-store.s3.amazonaws.com/0/214982/5e396570-43a5-0c2d-9464-23ef388cfcbd.png)

文字化けするので、一旦削除し再入力後、実行。
![eclipse_eucok.png](https://qiita-image-store.s3.amazonaws.com/0/214982/2aafc973-33e1-fb6c-fcb9-7486a5392805.png)
ファイルのプロパティーもEUC-JPになっている。
![file_prop_euc.png](https://qiita-image-store.s3.amazonaws.com/0/214982/1506edfc-0fa3-6962-5118-9b4820e21862.png)


fileコマンドで確認。EUC-JP(fileコマンドはISO-8859と表示する)のファイルが作成されている。


```:EUC-JP
[root@275f75a472cb ~]# file eclipse-workspace/test/src/test.cpp
eclipse-workspace/test/src/test.cpp: C source, ISO-8859 text
[root@275f75a472cb ~]#
```

参考）UTF-8の場合

```:UTF-8
[root@275f75a472cb ~]# file eclipse-workspace/test/src/test.cpp
eclipse-workspace/test/src/test.cpp: C source, UTF-8 Unicode text
[root@275f75a472cb ~]#
```

## １４．等幅のフォントに変更
ソースコード特に全角を含む場合、等幅のフォントのほうが見やすいので、等幅フォントに変更する。

ウィンドウ->設定メニューから設定画面を開く
![font.png](https://qiita-image-store.s3.amazonaws.com/0/214982/b05f941e-d479-f940-c754-86db31a14b1d.png)

一般->外観->色とフォントメニューを選択後、テキストフォントを選択。編集ボタンをクリックする。
![font_dialog1.png](https://qiita-image-store.s3.amazonaws.com/0/214982/e5c55f11-6526-6d91-3930-991450e10acc.png)

ゴシックフォントを選択し、必要に応じてサイズを変更する、
![font_dialog2.png](https://qiita-image-store.s3.amazonaws.com/0/214982/ef95caa4-fe2f-259b-3b84-e33f3bbb020a.png)

設定したフォントで表示される
![font_change.png](https://qiita-image-store.s3.amazonaws.com/0/214982/8793abbd-a9eb-f777-a813-f027b82f3e26.png)

## メモ
環境により起動エラーとなる。
「6. 日本語プラグインの読み込みの設定追加」で```-Xverify:none```をeclipse.iniに追加したことによるものらしい。
日本語でなくても困らないので（いちいちプラグインをインストールする必要があるが）、日本語プラグインの使用はやめている。