📖

(自分用メモ)最終課題2 ECサイト 環境構築 環境変数(BUKET、REGION)を実装中。CI上にて、Herokuへのデプロイができない

2023/01/03に公開

<今回のケースの結論>

heroku -configで環境変数もれ

ターミナルheroku -configで全ての環境変数ができてるかチェック。
また、Heroku側、CircleCi側でも変数が設定されているか確認すべし

<以下本文>
■現状

表題の件、最終課題2にて、PR提出→レビューを頂きました。

環境変数について、BUKET、REGIONを実装中です。

CI上にて、Herokuへのデプロイができず詰んでおります。

■その他確認したこと

heroku logs --tail

→State changed from starting to up

heroku config

heroku run console

Heroku サイト上

CIサイト上

■既に試したこと、参考にしたページ

似たような過去案件多数あり、同じように以下実行

・ターミナル上でheroku config:set 〜〜 実行

・keyをherokuのsettingにあるConfig Varsに追記

しかし、状況変わりませんでした。

https://mng-camp.potepan.com/questions/78c50a08-e638-4b68-928b-246241570522

https://mng-camp.potepan.com/questions/1c024ef1-5e61-4ca3-8270-f8d5d19c94f7

https://mng-camp.potepan.com/questions/8fd1a3c9-ca7d-4617-aada-39e5b65ab760

https://mng-camp.potepan.com/questions/724af2f0-b5d2-443d-a536-1fbcea7a6e23

しかしながら、Herokuサイトの右上openappからはサイトが正常に表示されます。

つまり、CIとHerokuの連携がうまく行っていない?のかと仮説を立ててます。

■やりたいこと

HerokuデプロイでRspec、Rubocop、CI全て自動で実施されるようにしたい

HErokuアプリで正常に作動することを確認したい

■git(PRレビュー)

https://github.com/potepancamp/Hiro-Nagai/pull/3

回答
ユーザー画像
長井宏樹

2022/12/25 00:34

Herokuの無料枠がなくなったということでしょうか?

となりますとPR提出は、

ローカル上でRubocop、Rspec実施後、Herokuへpushという理解でよろしいでしょうか。

(無料枠使い切りの旨をPRに記載)

参考

https://mng-camp.potepan.com/questions/c9d458fc-77d7-4a7d-a66b-5e5bef56250c

https://mng-camp.potepan.com/questions/2d98dba7-7860-43dc-ba2b-dc7635117399

ユーザー画像
Hiro(メンター)

2022/12/25 11:05

1枚目のエラーをよく見て下さい。

https://qiita.com/hirokik-0076/items/71c104158fa8b963ba85

こちらを参考にして下さい

ユーザー画像
長井宏樹

2022/12/25 13:36

Hiro様

ご回答ありがとうございます。いただいたリンク読ませて頂きました。

可能であればもう少しご説明頂けますでしょうか。

その上で改めて

heroku config

git remote -v

以下確認しましたが、以下の通りになりました。

HerokuとGitリポジトリは繋がっていると思うのですが、当方何か他に間違っているでしょうか

<追記>

heroku git:remote -a アプリ名でGitとHeroku繋げましたが、状況変わらずでした。

ユーザー画像
清水

2022/12/25 14:18

確かにひも付きは問題なさそうですね。

ただ

heroku git:remote -a アプリ名

のコマンドでerrorになっているのが気になりますね。

また確認ですが、元々デプロイは成功していたが、

https://github.com/potepancamp/Hiro-Nagai/pull/3#discussion_r1055400906

の指摘でregionとbucketも環境変数にしたら今回のエラーが出たという認識であっていますか?

であれば、まず今回の変更が原因かどうかを明確にするため、再度もとに戻してdepoyが上手くいくか試してみてください。

問題なくdeployできれば、regionとbucketの環境変数化が上手くできていないことが原因であることが明確になるのでそのあたりの調査を進めていけば良さそうです。

ユーザー画像
長井宏樹

2022/12/25 14:32

清水様

ご回答ありがとうございます。

heroku git:remote -a アプリ名で以下実行成功しました。

貴殿がおっしゃる通り、PRのレビューにてregionとbucketも環境変数にしたら、(以前はCI上でもHerokuデプロイできておりました)

すると今回のエラーが出たという次第です。

「もとに戻す」というのはstorage.ymlの変数を元のregion:ap-north~~, bucket:potepanec~~に戻すということでしょうか?

他にもHerokuサイト、CIサイトでも環境変数入力しております。(参考:最初の質問投稿の貼り付け画像)

ユーザー画像
清水

2022/12/25 14:44

「もとに戻す」というのはstorage.ymlの変数を元のregion:ap-north~~, bucket:potepanec~~に戻すということでしょうか?

そうです!それで通れば、追加で設定した環境変数の読み込みが上手くいっていないことが原因である(他が原因でない)ことが確認できると思います。

ユーザー画像
長井宏樹

2022/12/25 14:49

清水様

回答ありがとうございます

storage.ymlの変数を元に戻しましたが、デプロイできませんでした。

同じエラーが出ます。

ローカルでデプロイできるかも確認します

ユーザー画像
清水

2022/12/25 15:25

storage.ymlの変数を元に戻しましたが、デプロイできませんでした。

同じエラーが出ます。

正しく戻せていますか? .circleci/config.ymlなどは変更していないですか?

上手くいっていた時点のcommitまで遡って試してみると確実かと思います。

ユーザー画像
長井宏樹

2022/12/25 16:03

清水様

休日にも関わらず、ご丁寧にご対応ありがとうございます。

おっしゃる通り

config.yml、storage.ymlについて以前の状態に戻し、CI上からデプロイできました。

>>regionとbucketの環境変数化が上手くできていないことが原因であることが明確になるのでそのあたりの調査

こちら進めてまいります

ただ、Herokuのopen appよりアプリ開くも、Application errorが出ております。

ユーザー画像
長井宏樹

2022/12/25 17:11

清水様

お疲れ様です。

自身で調べましたところ、こちらの方と同じ症状かと考えます。

https://mng-camp.potepan.com/questions/82565e76-a38f-4e8b-92dc-956f8852f0f4

抜粋 Furugen(メンター)

2022/9/9 17:00

CircleCIからherokuへデプロイする際の設定については、「.circleci/config.yml」に記載があり、環境変数を追加した際にはこちらの編集も必要になります。

リポジトリを確認したところ追記されていないようでしたので、上記ファイルに「AWS_ACCESS_KEY_ID」などを設定している箇所に追加し、再度pushして確認してみて頂ければと思います。

となりますと、config.ymlに記載することとなると思うのですが、

当方の場合は,config.ymlに以下のように記載してCI上でHerokuデプロイができなくなってしまいました。

何か書き方がおかしいのでしょうか。ヒントいただければと思います。

Discussion