さて、無事にアプリケーションがデプロイできたので、デプロイの時に吐いたエラーをまとめていきたいと思います。
備忘録です。
同時に、絶望の歴史です。
まとめ、スタートです。
吐いたエラー一覧
- ssh_forwardで鍵がないと怒られる
- ファイルが作れず先に進めない
- rmagicがインストールできない
- mysql2がインストールできない
- secret_keysがないと怒られる
- database.ymlのproduction設定がうまくいかない
以上です。
まずは、1つ目。
・ssh_forwardで鍵がないと怒られる
まー、これはデプロイの時にローカルの秘密鍵をリモートリポジトリでも使えるようにするものなんですが、これって、単にデプロイの時にssh_forwardオプションを書けばいけるもんだとばかり思っていたんですが、そうじゃないんですね。
ssh_agentを使わないと使用できないんですって。
ということで、これ使ったら瞬殺でした。
私はCentOS使って開発しているんですが、標準装備されていたので、かなり楽でしたねー
ということで次です。
・ファイルが作れず先に進めない
デプロイするときに、currentファイルとか、shareファイルとか勝手に作ってくれるんですが、そのファイルを作るときに、エラーを吐かれました。
permission denied
ですって。
つまり、許可がないよ、ってことですね。
デプロイするときについでにファイル作ろうとしたけど、作ろうとしたユーザーに該当ディレクトリ以下のファイル作成権限がないよ、ってわけです。
知らんがな。
権限厳しいなぁと思いながら、どうしたら権限変更できるんだろうと調べたら「chown」コマンドを使うといいよってGoogle大先生が教えてくれたので、該当ファイルの諸々の権限を作業用ユーザーに変更したら無事にデプロイが進みましたとさ。
実にめでたい。
次です。
・rmagicがインストールできない
なんか良く分からないんですが、インストールできず・・・
調べたら、こんな記事(rmagickのインストールでコケたのでメモ)があったので、この通りにやったらできました。
世の中不思議だらけです。
次です。
・mysql2がインストールできない
なんか良く分からないんですが、インストールできず・・・
調べたら、こんな記事(bundle install で mysql2 のgemがインストールできない)があったので、この通りにやったらできました。
世の中不思議だらけその2です。
次です。
・secret_keysがないと怒られる
これは、なんか必要なんですって。
deviseを使っていると、必ず必要になるそうです。
rakeがDevise.secret_key was not setと出て失敗するときの対処法
を参考に作業したらうまくいきました。
このエラー定番らしいので、調べればたくさん出てきます。
良さげなものを参考にしてください。
ラストです。
・database.ymlのproduction設定がうまくいかない
これはですね。謎だったんです。
色々なサイトを見て、色々設定して。
どこを見ても、自分の書き方が間違っているとは思えない。
終わった。
万策尽きた。
ここまでか。
とあきらめかけたその時、ふと思ったんですよね。
もう一度だけ確認してみようかな、と。
productionのところだけじゃなくて、ファイル全体見てみようかなと。
そしたらですね、最後の方にpuroduction環境についてなぜかもう一つ書いてあったんですよ。
ファイルって、下のもので上に書いたものは上書きされるじゃないすか。
私は思わず笑ってしまいましたね。
そして、アプリを作った時に、production環境についても一応書いていたの思い出しました。
あの時間を返せよ!!
と思ったと同時にデプロイが上手くいって本当によかったと思ったのでした。
何かエラーを吐いて、調べても原因がわからない場合、ファイルを全部見ることが大切なのだと、私は学びました。
このような凡ミスほど、解決方法がわからなかったりするのだなと、身に沁みました。
いい教訓でした。
デプロイ後に困ったこと
プラス、デプロイ後に困ったことを書いておこうと思います。
- 本番環境でアセットが反映されない
- active admin に入れない
以上です。
まずは一つ目。
・本番環境でアセットが反映されない
よく言うじゃないですか。
本番環境だとCSSとJSが反映されない的な話。
これ有名なんで、調べればすぐに解決するっしょ!
と高をくくっていたのですが、まー反映されない反映されない。
調べて通りにやってもよくわからず、あーあーとなったのですが、よくよく見てみると、書いてある設定そのものがないということに気付いたのです。
これって勝手に追記してもいいのかなーと思っていろいろ見ていたら、気になる記述を発見しました。
「rails5では廃止されていて・・・」
・・・・
ここでまたしてもrails5の洗礼を受けていたのでした。
ということで、rails5用の設定を探して作業したら、うまくいきました。
涙が出そうでした。
次です。
・active admin に入れない
そうなんです。
セキュリティ的に初期メルアドと初期パスワードじゃまずいよなーと、初期設定を変えてでデプロイしたはいいものの、なぜか入れないんですよね。
もちろん、初期のやつでも入れず。
なぜだ、そんなに悪いことした・・・?と涙目になりながら、色々調べていたんですが、ふと思ったんですよね。
あれ、初期のやつを変更したファイルって、seedじゃなかったかなと。
あれ、これ読ませなきゃDBに登録されるわけなくね?と。
そうです、DBに情報なきゃ、そりゃログインなんて無理ですよね。
はっはっはーと rake db:seed したら、入れました。
ありがとう、rake db:seed。
ありがとう。
まとめ
まー色々と書いてきましたが、結局何が言いたかったかというと、
絶望
ってことです。
デプロイできなかったら、一生懸命作ったアプリが、その時間が無駄になるわけですからね。
やりきれないなんてもんじゃないです。
私は、windowsでの開発で一度デプロイ失敗しているので、仮想環境で開発した今回のアプリがデプロイできなかったらもうwindowsではあきらめるしか道はなかったですからね。
こんなに、神様に日頃行いを懺悔する日々はなかったですね。
デプロイ期間中、私はさぞ敬虔な神様のしもべだったことでしょう。
とてもいい経験でした。
コメント