Dockerで作るシンプルなRails開発環境
ずっとローカル開発環境はVagrantを使っていましたが、Docker for Macがリリースされてからは徐々にDockerにしています。
コードはIDE等を使って書いたほうがいいと思っているのでVagrantのsynced_foldersを好んで使っていました。
Dockerの入門記事ではよくVagrantでVirturalBox上のUbuntuにDockerを入れて…とかやっているのが多くてなんか冗長というか、違和感がありました。
Docker for Macでは直接Dockerが使えるのでコンテナを--volume
オプションで起動するとsynced_foldersのようなことは出来るし、ホストとコンテナの間に余計なものがないのでだいぶスッキリしました。
設定ファイルは以下のようになりました。ほとんど公式のクイックスタートのままですが。 Quickstart: Compose and Rails
環境は以下の通りです。
- Mac OS X 10.11.6
- Docker 1.12
- docker-compose 1.8.0
Dockerfileとdocker-compose.ymlをRailsプロジェクトディレクトリ直下に置いて、
config/database.ymlのhost:
をmysql
に書き換えて、以下のコマンドでOK。
docker-composeで立ち上げるとdepends_on
とかlinks
で指定した名前で接続できるので便利。
docker-compose build docker-compose up
Gemfileを書き換えた時はbuildからやり直しでちょっと時間がかかるけど、それ以外は不満はない。 あとコンテナサイズが大きくなりそうなんでDBのデータも外出ししておいた。
SOFT SKILLSを読んだ
エンジニア界隈で少し話題になっている(?)SOFT SKILLSを読んだ。
- 作者: ジョン・ソンメズ
- 出版社/メーカー: 日経BP社
- 発売日: 2016/06/02
- メディア: Kindle版
- この商品を含むブログ (2件) を見る
自分が特に参考になったことはブログを書くこと
昔からエンジニアはブログ書けっていうのはよく言われていることで、最近では以下の記事記事がホッテントリしていた。 developer.hatenastaff.com
そしてこのブログのようによっしゃと書き始めるも挫折して放置する人が多いのではないか。 しかし、本に書いてあったように新しい仕事を得ようとした時に職務経歴書と面接だけではなく、ブログや勉強会やOSS活動の積み重ねがある人のほうが有利だろう。 アウトプットは大事である。また少しでもブログを書こうと思う。
人に教えることで自分の頭が整理されて自分の理解が深まるという話もよかった。 stackoverflowなどで人に聞くばかりでなく答えることもやっていけたらと思う。
ちなみに、不動産投資の部分は今の日本では無理だと思うので参考にならないかな。
本当は英語の勉強も兼ねて原著を買ったんだけど、なかなか読み進められなかったので先に日本語を読んだ。 本は1回読んだだけではすぐ忘れるので復習しながら引き続き1日1章くらい読んでいきたい。
Soft Skills: The Software Developer's Life Manual
- 作者: John Z. Sonmez,Scott Hanselman,Robert C. Martin
- 出版社/メーカー: Manning Pubns Co
- 発売日: 2014/12/29
- メディア: ペーパーバック
- この商品を含むブログを見る
フィリピン語学留学の感想
たった2週間だったけど英語を勉強するためフィリピンに留学してきたので感想を書きます。
学校選び
日本人経営か韓国人経営かで食事とかサポートがかなり違うようなのでそこだけ注意。
僕が選んだのはQQEnglish
QQEはオンラインもやっているので留学前後で同じ教科書で勉強できるのはいいと思った。
フィリピンでの生活
基本は寮と学校の往復。たまにショッピングモールとか行ってみたぐらいでビーチに行く余裕はなかった。
若くて元気な人は週末に遊びに行ったりできると思うけど。。
学食のご飯は思ったより大丈夫だったが毎日食べ続けるのはちょっと。。という感じ。基本油っこくてしょっぱかった。
5月中旬をフィリピンで過ごしたけど日本の7月くらい暑かった。
あとトイレとシャワーは微妙だった。
良かったこと
英語に対するアレルギーはかなり減った。日常会話くらいならなんとななるって気持ちになった。
50分×6コマのマンツーマンレッスンと50×2コマのグループレッスンがあり、宿題とか自分でやった勉強を合わせるとだいたい1日10時間位英語を勉強していた。
学生時代も含めてこんなに英語を勉強したことはない。
勉強量が全然違うので日本で働きながら1日1時間とか勉強しててもなかなか英語力は上がらないと感じた。
語学学習にはとにかく量が必要だと思った。
3年間日本の英会話スクールに通ったけど全然ダメだったので留学に来たと言っていた人もいた。
後悔
サウスピークみたいにもっと校則が厳しいところにすればよかった。
QQEは20代の若い人が多くて勉強よりも遊びに来ているような感じの人もいた。
グループレッスンとか卒業式のスピーチを聞いていると自分より長くいるのにその程度?な人もいた。
休み時間や放課後に日本人同士でつるんで日本語しゃべってると上達しない。
僕はTOEICは600点くらいしかとってことなかったので偉そうなこと言えませんが、本当に勉強してる?って人がそれなりにいたんです。
フィリピン語学留学検討中の人へ
日本で以下の参考書を何度も繰り返しやってから留学した方がいいです。
- 1億人の英文法
- DUO
- 瞬間英作文
文法でも単語の意味でも授業はすべて英語で説明されるので基本が微妙なまま留学するとかなり時間をロスします。
日本でしっかりインプットして、フィリピンではアウトプットをブラッシュアップするのがいいと思います。
今後の自分の英語学習
フィリピンで感じたのはまだまだインプットが足りないということ。
あと目、耳、口同時に使って勉強するのが効果的だということ。
なのでTEDやら海外ドラマなどを見たり音読をしたりしてインプットをもっとやっていく。
そしてオンライン英会話もやる。
AnsibleでMac環境構築(2016年4月)
1年前くらいにAnsibleを使ってmacの初期設定をやったけどplaybookしか残してなかったので改めて手順をメモ。
気がつけばAnsibleでHomebrewが対応されていたり、homebrew-caskが本家に取り込まれていたりしてたので2016年4月現在のやり方でplaybookなどは修正。
今回は使ってなかったMBA(Mid 2012)をクリーンインストールしてOS 10.11.4で実施。
Homebrew
まずはHomebrewをインストール。 El Capitan出た当初はアップグレードだとディレクトリ権限の問題でいろいろ大変と聞いていたけど、 もう対応済みか公式のドキュメントは見当たらなかった。 今回はクリーンインストールしたので気にしない。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
xcodeとcommand line tools のインストールとかパスワード入力を求められるので適宜やってく。
Ansible
次にAnsibleをインストール
brew install ansible
入ったバージョンは2.1.1.0
inventoryファイル作成 echo 'localhost' > hosts
playbookファイルはGistからとってくる
インストール先とか変更したければドキュメントを見てパラメータを与える必要あり
- http://docs.ansible.com/ansible/homebrew_module.html
- http://docs.ansible.com/ansible/homebrew_cask_module.html
- http://docs.ansible.com/ansible/homebrew_tap_module.html
自分はデフォルトでよいので以下のように実行
ansible-playbook -i hosts -vv localhost.yml
Ansibleを使えばmacの設定もできるらしいが今回は見送り。
設定ファイル
Dropboxを起動してmackupでバックアップ済のファイルを同期後mackup restore
で各種設定ファイルたちを配置すれば完了。
atom
atomのパッケージは以下のようにリストを作成し、
apm list -bi > Atomfile
Dropboxで同期後以下を実行してインストール。
apm install --packages-file Atomfile
参考
Ansible Inventoryファイルでオプション設定
最近はAnsibleをちょこちょこ試してみています。
例えばVagrantで仮想マシンを普通に立ち上げるとポート番号とか認証キーがデフォルト値じゃないので.ssh/config
に以下のように書いたりする。
Host ansible_sample HostName 127.0.0.1 User vagrant Port 2222 IdentityFile /Users/hoge/ansible_sample/.vagrant/machines/default/virtualbox/private_key
するとInventoryファイルは
[web] ansible_sample
と書くだけでよいのだが、いろんなファイル見なきゃいけないのは嫌なのでInventoryファイルだけで完結できないかなと。
Inventoryファイルの書き方を調べてみるといろいろとオプションがあった。
http://docs.ansible.com/intro_inventory.html
上のVagrantの例だとこんな感じ。
[web] 127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=/Users/hoge/ansible_sample/.vagrant/machines/default/virtualbox/private_key