Livesense not engineers Advent Calendar 2018の12月19日を担当する@taku_shibuyaです。
普段はIESHILとDOOR賃貸のチーフプロダクトマネージャーをしています。
アドベントカレンダーは2回目の参戦で、去年の記事はコチラ【非エンジニアによるエンジニアチームのマネジメント】です。
去年の僕は、記事の最後にこんなことを書いてました。
以上で1回もコードが出てこないエントリを終了します。来年はもっと技術的なことが書けるようになってたらいいなー!
これで今年は技術的なエントリをしない選択肢が消えました。
ただし、問題は今年に入って一度もプルリクすら出していないということです。
『何書こうかな〜』とか考えても無駄なのです。
一行もコードを書いてないのですから。
今から何かやるという選択肢しかありません。
ということで何やろうか考えた結果、いつかやろうと思って先延ばしし続けていたIESHIL CONNECTの環境構築を自分でやってみることにしました。
※IESHIL CONNECTはRailsを使用
##IESHIL CONNECTの環境構築
IESHIL CONNECTのリポジトリのREADME.mdを見ながら進めます。(リポジトリは非公開なので悪しからず)
ちなみにIESHIL CONNECTで使っているツール類のバージョンは以下の通り。
バージョン:
node: 8.6.x
yarn: 1.12.x
ruby: 2.4.2
rails: 5.1.2
まずはgit clone
ですね。
その前に、git clone
したいディレクトリに移動します。
$ cd Dev/
ローカルのDevというディレクトリに移動しました。(任意のディレクトリに移動しただけです)
続いて、git clone
コマンドを叩きます。
$ git clone git@github.com:xxxxxxxxxxx
初っ端からエラー...
Cloning into 'connect.ieshil.com'...
Warning: Permanently added the RSA host key for IP address '192.30.255.113' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
SSHキーの設定がされてないよ的なエラーですね。。
この記事を参考に、キーの設定をしてみます。
まずはキーを入れるディレクトリに移動。
$ cd ~/.ssh
次に、コマンドで鍵を生成。
$ ssh-keygen -t rsa
これでキーができたので、中身をコピペします。
$ pbcopy < ~/.ssh/id_rsa.pub
次は、GitHubにキーを登録します。
これでいけるはず!git clone
したいディレクトリに戻ってさっきのgit clone
コマンドを再度実行します。
今度は無事に成功しました。
次は、git clone
したディレクトリに移動してbundle install
します。
$ cd connect.ieshil.com/
$ bundle install --path vendor/bundle -j4
すると、またエラーが出ました。
rbenv: version `2.4.2' is not installed (set by /Users/xxxxxxx/Dev/connect.ieshil.com/.ruby-version)
Rubyの2.4.2がインストールされてないよと言われているのでインストール。
$ rbenv install 2.4.2
インストールできたので、再度bundle install
するためにさっきのコマンドを叩くもエラー。
rbenv: bundle: command not found
The `bundle' command exists in these Ruby versions:
2.3.1
2.4.0
2.4.3
2.5.1
bundlerが入ってないぽいので、インストール。
$ gem install bundler
インストールできたので、3度めの正直のbundle install
でようやく成功。
次は、yarnのinstallとbuildをします。
$ yarn
はい、またエラーです。
yarn install v1.9.4
[1/5] 🔍 Validating package.json...
error connect_ieshil_com@: The engine "node" is incompatible with this module. Expected version "8.6.x".
error connect_ieshil_com@: The engine "yarn" is incompatible with this module. Expected version "1.12.x".
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
そう簡単にはいきません。
バージョンがだめっぽいのでupgradeしてみます。
$ brew upgrade node
$ brew upgrade yarn
アップグレードできたので、再度yarnのinstallとbuildにトライ。
しかし、またエラー...
yarn install v1.12.3
[1/5] 🔍 Validating package.json...
error connect_ieshil_com@: The engine "node" is incompatible with this module. Expected version "8.6.x". Got "11.4.0"
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
nodeのバージョンが違うから、"8.6.x"にしろやと言われているようです。
まず、ndenvというバージョン管理ツールをbrewでダウンロードして、nodeのバージョンを下げます。
$ brew install ndenv
次は、環境変数を設定します。
$ echo 'export PATH="$HOME/.ndenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(ndenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
終わったので確認してみます。
$ ndenv -v
ndenv 0.4.0
バージョンが出ているので成功っぽいです。やったぜ!
ndenvでnodeをインストールします。
まずインストール可能なバージョンの確認から。コマンドはこちら。
$ ndenv install -l
続いて、バージョンを指定してインストールします。
$ ndenv install v8.6.x
インストールされたnodeのバージョンを確認してみましょう。
$ ndenv install v8.6.x
system
* v8.6.0 (set by /Users/xxxxxxxx/Dev/xxxxxxx/.node-version)
よし!!
次は、ローカルでのnodeのバージョンを設定します。
$ ndenv local v8.6.x
これでnodeのバージョン設定は大丈夫なはずなので、再度yarnを実行します。
$ yarn
通った!
これで設定は終わりです。
Railsサーバーを立ち上げて確認してみましょう。
$ bin/rails s
localhost:3000にアクセスすると、
だめですね。
データベースの設定書いてないよと言われているようなので、.envファイルに書きます。
env.localの設定内容をコピーして.env.localにファイル名変更して設置しました。
$ cp env.local .env.local
これで大丈夫なはず。
Railsサーバーを再度、立ち上げて確認してみましょう。
できた!
##まとめ
いかがでしたでしょうか?
環境構築でつまづきやすいところは、全部つまづきました。
偶然ですが、環境構築でつまづきやすいところがまとまったのではないでしょうか?
懸念としては、環境構築がエンジニアにとっては当たり前すぎる内容だし、非エンジニアには理解し難い内容ということです。
何が言いたいかというと、この記事は需要が無さそうということです。
しかし、それは気にしないことにします。
だって、自分で環境構築できたの嬉しかったから。
明日は同じチームの若手エース@owakaさんです!よろしく!!