Docker-4

引き続き、Dockerで開発環境構築。

また眠くなる感じですがお付き合いください汗。

 

翌日起動したら謎のエラーが出たのでググって解決。

Going My Linux Way - りなっくすいろいろ


どうやら、vnc接続終了時にうまくログアウトできてないために発生していた模様。

消すのは怖いので該当ファイルをリネームで対応。

とりあえず動くようにして、javaをいれます。

 

普通にapt-getしようとすると、openjdkしかないみたいです…

oraclejdkはapp-apt-repositoryというのが必要らしく、以下でインストール

#sudo apt-get install apt-file
#sudo apt-file update
#sudo apt-file search add-apt-repository
#apt-get -y install software-properties-common

で、javaをいれる。

#add-apt-repository -y ppa:webupd8team/java
#apt-get install oracle-javaX-installer

(Xはバージョン)


でも、なんかうまくいかないんで前回の記事と同様にwgetjavaをいれる。

(ちなみに上記手順だと、環境変数の設定とかも勝手にやってくれるパッケージも

あるらしいです。)

 

続いて、eclipseをいれる。

 

デスクトップでブラウザ開いてeclipse公式に移動し、

最新のneonインストーラをダウンロード。

で圧縮ファイルを展開するも、インストーラが入ってない…

ん?ってなりwinでlinux版を落とすとちゃんとインストーラがいる。

謎すぎる。

 

色々ググると、pleiadesがあるらしいのでそれで行くことに。

#apt-get -y install pleiades

楽チンやー!と思いきやまさかのver3.8…

しかもopenjdk1.8とかも入ってきて勝手に環境変数とか書き換わります汗。

 

余談ですが、Docker上デスクトップにはrootじゃないユーザで入っております。

で、デスクトップにもコマンドラインツールがあるので

いろいろできるのですがsudo権限がないためうまくできません。

ので、以下で追加しました。

#gpasswd -a cent sudo

 

続いてtomcatは公式からダウンロードして普通に展開。

mavenは過去バージョンが欲しいためwgetで取得。

#wget https://archive.apache.org/dist/maven/maven-2/2.2.1/binaries/apache-maven-2.2.1-bin.tar.gz

vi etc/profile.d/maven.sh でパス追加。

export M2_HOME=/home/cent/work/apache-maven-2.2.1
export PATH=${M2_HOME}/bin:${PATH}

 

で、eclipseを起動しいろいろプラグインとかいれてくか、と思っていたら

UIが古いし、eclipseマーケットプレイスもないのでかなりストレスなので

やっぱあかんはとなり

もうちょい新しいeclipseを再インストールすることに。

#apt-get autoremove

上記で消すと依存関係も見つつ削除してくれます。便利。

 

eclipseのバージョンはkeplerをチョイス。

公式でダウンロードして解凍すると中にインストーラーがいた!

JAVA EEeclipseを選択)

 

インストール後、実行するも。動かない…。

javaのパスも通っているが動かない。

エラーメッセージを見ると、

eclipse置いてあるディレクトリにjdkeがない!

みたいなことを英語で言われたので

事前にインストールしたjdkの中からjreのみコピってeclipse内に移動したところ

動きました汗。

 

実行後プラグインを追加していきます。

maven,svn関連のプラグインがほしい。

m2eはすでに入っていたので、subversiveをインストール

インストールして再起動後、

SVN kit(コネクター)のインストールが促されるはずだが出ない…。

マーケットプレイスも新規ソフトウェアのインストールからも見つからず…。

 

色いろいじっていたら設定にいました。

team>svn>SVNクライアントでGet Connectorsで任意のバージョン取得します。

で、いよいよソースをチェックアウトしようと思ったら

現場のsvnサーバに繋がらない…。

コンテナ内からpingコマンドでsvnサーバのipアドレスを指定し

疎通確認をすると、unreachable…となっていました。

 

色いろ調べると、

別プロジェクトでも同様のところでつまずいていたっぽいことが判明!

どうやらdocker0というブリッジがdockerの起動時に自動的に立ち上がり、

外部とのネット接続を制御しているようです。

 

そのアドレスがsvnサーバipアドレスと被っており、

内部を探しに行ってしまっていたため接続できていない模様。

一度削除して、再度自前でを設定するとつながるらしい。

 

さらに調べるとDockerforMacになってからは、

ホストのデスクトップに常駐しているdockerアイコンからGUIで設定を行うらしい!

preferences>Daemon>Advanced

設定はJSON(というかキー:値)形式で指定するらしいです。

 

以下を設定するといいとのことで設定を追加。

fixed-cidr:"xxx.xxx.x.x/xx"

 

Dockerを再起動すると立ち上がらない…。
めっちゃ焦ってググるもそうなったらリセットするしかない、

と書かれておりました。


諸々初期化されると思いビビってたのですが、

時間ももったいないと思い思い切って

reset your daemon

結果、大丈夫でした。何事もなく再起動汗。

 

さらにググると、下記の設定をさっきバグらせたところに設定で行けるとのこと。

"bip":"xxx.xxx.x.x/xx"


参考

http://qiita.com.chroju/items/5bff99d1c2c792575d32

Cannot configure daemon's bip/bridge IP range · Issue #218 · docker/for-mac · GitHub

見事接続完了!!

 

ちなみに、SVNからのソースはホストとの共有部分に落とすことにしました。

 

理由としてはdockerの仕組み上、

差分管理でイメージを構成しているためそこに大量のファイル入れていくと

動きが遅くなるらしいので。

ホストマシンと共有フォルダを作成 

こちらもホストのデスクトップ常駐のDockerGUIから

docker>preferences>file>sharing 

より任意のホストの領域を選択。

起動時は-vオプションでマウント。

$docker run -v /Applications/Projects:/home/cent/Projects -p 5901:5901 ubuntu5.4.7:6 /root/start.sh

 

残りの課題としては、

DockerFileという形式にするとDockerさえマシンに入っていれば

ここまでの手順を自動化できるみたいなのでそこまでやるところでしょうか。

 

結局Dockerというよりはlinuxのことばかり書いてましたが汗。

かなりアクロバティックな使い方をしてしまったので、

普通の使い方をどこかでもう一度勉強したいですね笑。

 

あと、Dockerに限らずvagrant,ansibleあたりも時間見つけてやりたいですね。

 

一旦Docker日記は今回で終わりにします(予定)。