teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

試したことを追記

2021/03/06 19:56

投稿

Flotsam
Flotsam

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- circleciにでheroku_deploy時に環境変数が読まれない。
1
+ circleciにでheroku_deploy時に環境変数が読まれない。['RAILS_MASTER_KEY']
body CHANGED
@@ -8,68 +8,21 @@
8
8
  gem 'dotenv-rails'
9
9
  発生している問題
10
10
  ---
11
- circleciを使用しherokuへデプロイをする際、「aws_access_key_id, aws_secret_access_keyが見当たらない」とエラー文が出てきます
11
+ circleciを使用しherokuへデプロイをする際、「復号するためのキーが見つからない」とエラー文が出てきます
12
- ![![イメージ説明](f26965203e4d85d72661cdb2fd611889.png)]
12
+ ![イメージ説明](b4f8db54d31d379ec4d21367d2e710fd.png)
13
+
14
+ エラー文抜粋:
15
+ Running: rake assets:precompile
16
+ Missing encryption key to decrypt file with.
17
+ Ask your team for your master key and write it to //config/master.key or put it in the ENV['RAILS_MASTER_KEY'].
18
+
13
19
  該当のソースコード
14
20
  --
15
21
  ```ここに言語を入力
22
+ /.circleci
16
- version: 2.1
23
+ heroku_deploy:
17
- jobs:
18
- rspec:
19
24
  working_directory: ~/bookreco
20
25
  docker:
21
- - image: circleci/ruby
22
- steps:
23
- - checkout
24
- - setup_remote_docker
25
- - run:
26
- name: Setup environment variable
27
- command: |
28
- echo "export COMPOSE_FILE=docker-compose.ci.yml" >> $BASH_ENV
29
- - run:
30
- name: Start containers and verify it is working
31
- command: |
32
- set -x
33
- docker-compose up -d
34
- docker exec bookreco curl -4 --retry 10 --retry-delay 3 --retry-connrefused http://localhost:3000
35
-
36
- - run:
37
- name: Setup database
38
- command: |
39
- docker-compose exec bookreco rails db:create
40
- docker-compose exec bookreco rails db:migrate
41
- docker-compose exec bookreco bundle exec rake db:migrate RAILS_ENV=test
42
-
43
- - run:
44
- name: Run rspec
45
- command: docker-compose exec bookreco rspec
46
-
47
- rubocop:
48
- working_directory: ~/bookreco
49
- docker:
50
- - image: circleci/ruby:2.5.1
51
- steps:
52
- - checkout
53
- - restore_cache:
54
- keys:
55
- - gemfiles-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
56
- - gemfiles-{{ .Branch }}-
57
- - gemfiles-master-
58
- - run: bundle config --local path vendor/bundle
59
- - run:
60
- name: bundle install
61
- command: bundle check || bundle install --jobs=8 --clean
62
- - run:
63
- name: Run rubocop
64
- command: bundle exec rubocop --parallel
65
- - save_cache:
66
- key: gemfiles-{{ .Branch }}-{{ checksum "Gemfile.lock" }}
67
- paths:
68
- - vendor/bundle
69
-
70
- heroku_deploy:
71
- working_directory: ~/bookreco
72
- docker:
73
26
  - image: sue445/heroku-cli
74
27
  steps:
75
28
  - checkout
@@ -124,17 +77,6 @@
124
77
  end
125
78
  ```
126
79
  ```ここに言語を入力
127
- app/uploaders/picture_uploader.rb
128
-
129
- class PictureUploader < CarrierWave::Uploader::Base
130
- if Rails.env.production?
131
- storage :fog
132
- else
133
- storage :file
134
- end
135
-
136
- ```
137
- ```ここに言語を入力
138
80
  /.env
139
81
 
140
82
  AWS_ACCESS_KEY_ID = '********'
@@ -143,10 +85,17 @@
143
85
  CircleCIの歯車アイコンからAdd Variablesを選択し、AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY、という名前でそれぞれ環境変数を追加済![イメージ説明](346e8a1fb5e184838b44b901f044a2c3.png)
144
86
  試したこと
145
87
  ---
88
+ ・credentials.yml.encのaccess_keyの値は初期値から任意の値へ変更済
89
+
146
90
  ・「rails c」コマンドを使い、中身の値を確認
147
- pry(main)> ENV['AWS_ACCESS_KEY_ID']⇨結果.envの中身を確認することができた
91
+ pry(main)> ENV['AWS_ACCESS_KEY_ID']⇨
92
+ pry(main)>Rails.application.credentials.secret_key_base⇨
93
+ コマンドの結果、どちらもcredentials.yml.encの中身を確認することができた
148
94
 
95
+ ・config/master.keyの中身に値は作成されている
149
96
 
97
+ ・config/environments/production.rbの中に「config.require_master_key = true」と記載
98
+
150
99
  ・carrierwave.rb修正⇨下記のように修正するも解決せず
151
100
  ```ここに言語を入力
152
101
  config/initializers/carrierwave.rb
@@ -173,7 +122,7 @@
173
122
  本題
174
123
  ---
175
124
  ・carrierwave.rbに値をそのまま入れるとcircleciのdeployはクリアします。
176
- その為原因として環境変数の設定に問題があるのだと思うのですが、どんな些細な可能性でも差し支えありませんアドバイスいただけないでしょうか。
125
+ その為原因として環境変数の設定に問題があるのだと思うのですが、どんな些細な可能性でも差し支えありませんアドバイスいただけないでしょうか。手当たり次第試している為情報が撮り散らかり申し訳ありません。
177
126
  ```ここに言語を入力
178
127
  config/initializers/carrierwave.rb
179
128
 

2

文法の修正

2021/03/06 19:56

投稿

Flotsam
Flotsam

スコア11

title CHANGED
File without changes
body CHANGED
@@ -170,4 +170,18 @@
170
170
  end
171
171
  end
172
172
  ```
173
+ 本題
174
+ ---
175
+ ・carrierwave.rbに値をそのまま入れるとcircleciのdeployはクリアします。
173
- どんな些細な可能性でも差し支えありません。アドバイスいただけないでしょうか。
176
+ その為原因として環境変数の設定に問題があるのだと思うのですが、どんな些細な可能性でも差し支えありません。アドバイスいただけないでしょうか。
177
+ ```ここに言語を入力
178
+ config/initializers/carrierwave.rb
179
+
180
+ elsif Rails.env.production?
181
+ config.fog_credentials = {
182
+ provider: 'AWS',
183
+ aws_access_key_id: '******',
184
+ aws_secret_access_key: '******',
185
+ region: 'ap-northeast-1'
186
+ }
187
+ ```

1

試したことを追記

2021/03/02 18:33

投稿

Flotsam
Flotsam

スコア11

title CHANGED
File without changes
body CHANGED
@@ -140,4 +140,34 @@
140
140
  AWS_ACCESS_KEY_ID = '********'
141
141
  AWS_SECRET_ACCESS_KEY = '*******'
142
142
  ```
143
- CircleCIの歯車アイコンからAdd Variablesを選択し、AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY、という名前でそれぞれ環境変数を追加済![イメージ説明](346e8a1fb5e184838b44b901f044a2c3.png)
143
+ CircleCIの歯車アイコンからAdd Variablesを選択し、AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY、という名前でそれぞれ環境変数を追加済![イメージ説明](346e8a1fb5e184838b44b901f044a2c3.png)
144
+ 試したこと
145
+ ---
146
+ ・「rails c」コマンドを使い、中身の値を確認
147
+ pry(main)> ENV['AWS_ACCESS_KEY_ID']⇨結果.envの中身を確認することができた
148
+
149
+
150
+ ・carrierwave.rb修正⇨下記のように修正するも解決せず
151
+ ```ここに言語を入力
152
+ config/initializers/carrierwave.rb
153
+
154
+ require 'carrierwave/storage/abstract'
155
+ require 'carrierwave/storage/file'
156
+ require 'carrierwave/storage/fog'
157
+ CarrierWave.configure do |config|
158
+ if Rails.env.development? || Rails.env.test?
159
+ config.storage = :file
160
+ elsif Rails.env.production?
161
+ config.storage :fog
162
+ config.fog_provider = 'fog/aws'
163
+ config.fog_directory = 'bookreco'
164
+ config.fog_credentials = {
165
+ provider: 'AWS',
166
+ aws_access_key_id: Rails.application.credentials.aws[:access_key_id],
167
+ aws_secret_access_key: Rails.application.credentials.aws[:secret_access_key],
168
+ region: 'ap-northeast-1'
169
+ }
170
+ end
171
+ end
172
+ ```
173
+ どんな些細な可能性でも差し支えありません。アドバイスいただけないでしょうか。