ブログ移設しました。

bloggerから記事を移設しました。


HUGOで記事を書いてみると思いのほか書きやすかったので移動。

木曜日, 12月 29, 2016

やっぱり、macos sierraで行こう

えっと、mac=>ubuntuにしてやろうといきまいていましたが、
クライアント開発環境としてはmacが最適解なんじゃないの?

また、apple純正じゃないとだめってなったらあれなんじゃないの?って本日出社する前に思い立ちまして、


納会終わって帰ってきたら、こんなことをしておりました。

別にubuntuにするのが難しいとかではないです。
先人の知恵を探してみると色々出てきます。

https://moneyforward.com/engineers_blog/2016/02/22/ubuntu/

少し風変りだけど難しくてできねーって問題ではないのです。

ってなわけで、開発環境はMacがつぶれるまでMacで行きたいなと。(つぶれたらデータ移設できないけども。)

まずは、環境にdocker用のVmとvagrantをのっけてVMとdockerを簡易に作れるようにしちゃいます。

火曜日, 12月 20, 2016

まずは、ubuntuマシンにしてやろうか!?(part II)

起きたら終わっていると思っていたHFS+ => XFSへのデータ移動ですが、

困ったことにVirtualbox越しに、ホストMacBookから参照していると、エラーが頻発するのです。

色々試したけど、これって前にも経験しているので、早々に諦めて

この方式に、するしかないかぁ。。。。
Knoppixで利用するときに注意しないといけないことが。。。
起動したあと放っておいたら、スクリーンセーバーで止まってしまうことがあるみたい。
スクリーンセーバーから戻ろうとしてキーを入力したらそこでずっと画面が止まってしまう。。。

起動するときにスクリーンセーバーはoffにしておかないと、画面がうっとおしいことこの上ない。

んで、これを1日続けてみましたが、なぜかOSが固まってる。。。。
knoppixをサーバーとして使うのはあまりいい案じゃないかもしれない。

仕方が、、、ない。

安心安全のubuntuさん。
可愛いよ。

転送終了後もdockerホストとして生き延びてくれればいいわけでさ。

そんなこんなでデータ転送は上記の構成で二日目突入。
ubuntuマシンはUSB2.0だからかなり時間かかる。

土曜日, 12月 17, 2016

まずは、ubuntuマシンにしてやろうか!?(part I)

さて、社内で発表するときに自分のマシンを利用したのです。

朝出発前にマシンを見ると、なんと停止しているではありませんか。
正確には、マシンは起動していますが、あれです。 ログイン画面です。

あぁーあぁー堪らない。

そんなわけで、ubuntuを入れることを試みましょう。
この利用しているマシンはこんな状態だからね。サーバーマシンにしちゃってもいいでしょう。

移行はこんな感じで1台でやります。

USB HDD二つで一つは、macへもう一つは、VMへ

そうすれば、各々のOSで普通にディスクが見れる状態になると。
そんなわけで 移行作業していきます。

なお、上記のような図を作るために一瞬Inkscape使おうとか思いましたが。
便利なサイトを見つけました。
https://www.draw.io/
すごい使いやすいです。 visioみたい(テンプレートやら、細かさは比じゃないんだろうけど、絵を描くだけだったらこっちの方がいい)

木曜日, 6月 16, 2016

doocker-machine bridge-network && HDDマウント

bridgenetwork周りについて

windows上でdocker動かすときって、以下の選択肢があると思ってて、

  • docker-machineとかでcreate(旧boot2docker(core linux?だっけ中身)) docker-machine create --driver=virtualbox
  • 使い慣れたVM状にdocker環境を構築、docker-machine create --driver=(不明)
私は汎用的に使える環境であることが好きだなぁ。と思ったので、docker-machine側でVMを用意する方式をとっていました。
が、この方式でbridge-networkを構築すると証明書が違う!という理由でdocker-machine env接続情報が取得できず、エラーで困ったことになることが多い。

理由としては、NIC起動順番が異なってしまて、docker-machine env でうまく接続できていないっぽい。
いろいろ不便だったので試行錯誤してみた(ホストVMのIPは環境切り替える際に不便なのでやりたくない)

結果として、以下の感じのコマンドでbridge-networkを追加するだけ。。。
GUI側でやってるのと何ら変わらないのだけど、なんでこっちだとうまくいくんでしょうかね。


vboxmanage  modifyvm default --nic3 bridged
vboxmanage modifyvm default --bridgeadapter3 "en3"
vboxmanage modifyvm dev --nic3 bridged
vboxmanage modifyvm dev --bridgeadapter3 "en3"

HDDマウントについて

あと、以下のような形でマウントすると、ホストマシンのサイズ依存となってしまう。
vboxmanage sharedfolder add 'dev'      -automount -name 'Volumes'  -hostpath '/Volumes/';
sudo vi /var/lib/boot2docker/bootlocal.sh
sudo mkdir -p /Volumes;
sudo mount -t vboxsf Volumes  /Volumes/  -o uid=1000,gid=100,iocharset=utf8;

なので、この場合は、一つずつ、ディスクをマウントさせましょう。
vboxmanage sharedfolder add 'default'  -automount -name '3tv1'  -hostpath '/Volumes/3tv1';
sudo vi /var/lib/boot2docker/bootlocal.sh
sudo mkdir -p /Volumes/3tv1;
sudo mount -t vboxsf 3tv1  /Volumes/3tv1  -o uid=1000,gid=100,iocharset=utf8;

samba経由でwindows backupするときに気づいた。
/Volumesだけだと、ホストVMの/ディスクのみのサイズしか見ないので、結果的にトンでもねーことになっちまいます。

電車、、、間違えて遅刻しそうかひやひやしながら書いています。

水曜日, 6月 01, 2016

Jenkinsで何かする事になった。

テキストベースでまとまったから、一旦公開。

会社の社員総会で話をすることになった。

当初は仮想技術について準仮想化、コンテナ技術で話をしようとしていた。
けども、どっちも説明すると「こいつ一体何が言いたいんだ。」ってことになるので、コンテナ技術の実践をやろうと思ったのだけど。

まだ、プロジェクトで利用することはなさそう。(まぁ、何故かいつも唐突に決まることが多いのだけど)
そうなると興味も半減しますね。何かいい案はありませんか?と。

「CIなら興味があるんじゃないか?」ってことで、じゃあ、テーマ変更と相成りました。

アプリ開発から離れて久しくすでにやりかたなんて忘れた。
しかしながら、今回はデプロイにフォーカスを絞ったほうがいいと判断しアプリのデプロイつまり、APKを作ったりすることだね!

Eclipseでやる方法はすごい多いけど、AndroidStudioで作ったのってまだあまり見ないな。ってことで、ブログに書き留めつつ、AndroidStudioのプロジェクトをJenkinsでAPK作成するところまでをやろうかと。

主だった話は、JenkinsとGradleプロジェクトについての話になるんだろうけどね。

サンプルプロジェクトに独自ライブラリ、Google純正ライブラリとかを使ったものをテスト、APK作成までがきっとゴールになるんだろうな。

環境としては、以下を想定
Docker + Jenkins + Java 7(Oracle) + Ruby製のGCM通知 + コンテナ用リポジトリ
あっ。Ruby製のGCM通知プログラムもテスト書いておかなきゃならんのか。(卵が先か鶏が先か。)

JenkinsでサンプルプルプロジェクトAPK作成まで頑張る。
Jenkinsで、テストも自動化まで頑張る。
そのあとサンプルプロジェクトにライブラリを追加して、簡易的なものを実装、テストも書いて、正しく動くまで頑張る。
GCM通知プログラムとして申請を出す。
Ruby製のGCM通知プログラムを書く。
Ruby製のGCM通知プログラムのテストも自動化する。
コンテナのリポジトリは、、、、公開しないと会社のマシンでひいひいいわないといけないから公開。

んー、発表が6月の2x日だって話だったから、6日か。
ツーリングにも行きたいので、3日でまとめられる内容ということを考えると。
Ruby製のGCM通知を削ろう。
Docker + Jenkins + Java 7(Oracle) + コンテナ用リポジトリ

スマホでググったら普通にやっている人見つけたし。
http://qiita.com/usamao/items/93535df778916ee70ad8

少し余裕過ぎるな。面白い要素を加えねば

最悪会社の資産乗っていないし、外部公開で自宅に立てればいいし。

こんあところか。全然新しくもないな。。。まぁ、頑張ろっと。

水曜日, 4月 27, 2016

cakephpでハマった話

他では支えていたライブラリがConsole/Commandで使えなかった際に、検証した結果を記録。

環境:
cakephp:https://github.com/cakephp/cakephp/releases/tag/2.4.9
docker環境:http://qiita.com/naga3/items/d1a6e8bbd0799159042e
※全部信頼してやらないでよ? あなたの環境のことは知らないから。

docker-compose build
docker-compose up
docker-compose.ymlでversion指定をするとおこになったので、docker-composeだけ最新へ

動作確認しているとそぐわない箇所があったので、その辺は適宜修正。

  1. php7だったり=>5系かな?
  2. cakephpだとmod_rewrite必要だったり
  3. link必要じゃね?だったり(バージョンでいらないかも?)
  4. ファイルパーミッショん周りうまくいってないね。しゃーないね。 Dockerfileに書いちゃおうね。だったり。


検証用コードを書く
app/Console/Command/LibTestShell.php
app/Controller/TestLibController.php
app/Lib/TestLib.php
app/Vendor(これ以下は名前がはずかしすぎるので割愛)

ハマった箇所については、実際には、include_onceでこけていた。
コンソールだけそれが起こるという困った事象だった。

App::importでディレクトリ差異があってうごかないのかなーとか思ったのだけど、(Commandの方が一つディレクトリが深い)
https://github.com/tluna/testcakephp2.4

んーー。。謎は深まるばかり。 mjdksg!!!

夜も遅いのでそろそろ寝ます。。。