質問編集履歴
9
試したこと5を追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -241,6 +241,19 @@
|
|
241
241
|
|
242
242
|
```
|
243
243
|
|
244
|
+
### 試したこと5
|
245
|
+
試したこと1の状態にしてrailsを立ち上げ
|
246
|
+
ENV['DATABASE_URL']を確認してみました。
|
247
|
+
|
248
|
+
```databaseurl.sh
|
249
|
+
|
250
|
+
$ docker exec -it xxxxxxx bash
|
251
|
+
xxxxxxxx# rarils console
|
252
|
+
irb(main):001:0> puts ENV['DATABASE_URL']
|
253
|
+
=> nil
|
254
|
+
|
255
|
+
```
|
256
|
+
|
244
257
|
### 環境
|
245
258
|
mac 10.15.7
|
246
259
|
ruby 2.6.8
|
8
質問の書き方を変えてみました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
railsのdatabase.ymlでなぜかproductionが読み込まれてしまう(docker compose)
|
1
|
+
railsのdatabase.ymlでなぜかproductionが読み込まれてしまう理由が知りたい(docker compose)
|
test
CHANGED
@@ -6,9 +6,12 @@
|
|
6
6
|
ローカルでdocker compose up -dしてもproductionを読み込みにいってしまいます。
|
7
7
|
後述する試したこと1のようにrailsのソースではなくテキスト直書きにすると普通にrailsが起動します。
|
8
8
|
|
9
|
-
### 実現したいこと
|
9
|
+
### 実現したいこと
|
10
10
|
ローカルで立ち上げた時はdevelopment、本番ではproductionを読み込みにいくよう設定したいです。
|
11
|
+
|
12
|
+
### 知りたいこと
|
13
|
+
以下のソースでなぜproductionが読み込まれエラーになるかが知りたいです。
|
11
|
-
設定が間違っている箇所、確認すべき場所などご教授いただけましたら幸いです。
|
14
|
+
また設定が間違っている箇所、確認すべき場所など合わせてご教授いただけましたら幸いです。
|
12
15
|
|
13
16
|
### 発生している問題・エラーメッセージ
|
14
17
|
ブラウザに初回アクセスした際は以下のメッセージが白背景の黒文字で表示されます。
|
7
タイポを修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
### 前提
|
2
|
-
ローカルで作成したrai
|
2
|
+
ローカルで作成したrailsをdocker-composeにバインドマウントして動かしています。
|
3
3
|
その際、dababase.ymlのproduction設定が意図せず読み込まれてしまいます。
|
4
4
|
自分なりに確認していたところproduction設定が読み込まれるきっかけっぽいところを発見しました。
|
5
5
|
database.ymlのproductionでRails.application.credentialsとして読み込もうとすると
|
6
文章を簡潔にしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -245,6 +245,5 @@
|
|
245
245
|
Docker version 20.10.8, build 3967b7d
|
246
246
|
|
247
247
|
### 備考
|
248
|
-
不足情報などがありましたら可能な限り対応したいと考えています。
|
249
|
-
|
248
|
+
不足情報、わかりづらい部分がありましたらお手数ですがご指摘ください。
|
250
249
|
よろしくお願いいたします。
|
5
誤変換を修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -175,7 +175,7 @@
|
|
175
175
|
|
176
176
|
### 試したこと2
|
177
177
|
以下のようにproductionをコメントアウトしても
|
178
|
-
|
178
|
+
#username: <%= Rails.application.credentials.db[:user] %>
|
179
179
|
↑の行で同じエラーが出ます。
|
180
180
|
|
181
181
|
```database.yml
|
4
前提、実現したいことなど追記しました。わかりにくいところを整理しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,11 +1,13 @@
|
|
1
|
-
###
|
1
|
+
### 前提
|
2
|
+
ローカルで作成したraiilsをdocker-composeにバインドマウントして動かしています。
|
2
|
-
dababase.ymlの
|
3
|
+
その際、dababase.ymlのproduction設定が意図せず読み込まれてしまいます。
|
3
|
-
~~確認すべきファイルや設定場所などの見当がつかない状態です。
|
4
|
-
どこから確認すべきかをご教授いただけましたら幸いです。~~
|
5
4
|
自分なりに確認していたところproduction設定が読み込まれるきっかけっぽいところを発見しました。
|
6
|
-
database.yml
|
5
|
+
database.ymlのproductionでRails.application.credentialsとして読み込もうとすると
|
7
6
|
ローカルでdocker compose up -dしてもproductionを読み込みにいってしまいます。
|
7
|
+
後述する試したこと1のようにrailsのソースではなくテキスト直書きにすると普通にrailsが起動します。
|
8
|
+
|
9
|
+
### 実現したいこと|知りたいこと
|
8
|
-
ローカルで立ち上げた時はdevelopment、本番ではproductionを設定したい
|
10
|
+
ローカルで立ち上げた時はdevelopment、本番ではproductionを読み込みにいくよう設定したいです。
|
9
11
|
設定が間違っている箇所、確認すべき場所などご教授いただけましたら幸いです。
|
10
12
|
|
11
13
|
### 発生している問題・エラーメッセージ
|
@@ -40,24 +42,27 @@
|
|
40
42
|
pool: 5
|
41
43
|
timeout: 3306
|
42
44
|
host: db
|
45
|
+
|
43
46
|
development:
|
44
47
|
<<: *default
|
45
48
|
username: root
|
46
49
|
host: db
|
47
50
|
database: rails_sample_db
|
48
51
|
socket: /tmp/mysql.sock
|
52
|
+
|
49
|
-
|
53
|
+
test:
|
50
|
-
|
54
|
+
<<: *default
|
51
|
-
|
55
|
+
username: root
|
52
|
-
|
56
|
+
host: <%= ENV['DB_HOST'] %>
|
53
|
-
|
57
|
+
database: rails_sample_db
|
54
|
-
|
58
|
+
socket: /tmp/mysql.sock
|
59
|
+
|
55
|
-
|
60
|
+
production:
|
56
|
-
|
61
|
+
<<: *default
|
62
|
+
database: <%= Rails.application.credentials.db[:name] %>
|
57
|
-
|
63
|
+
username: <%= Rails.application.credentials.db[:user] %>
|
58
|
-
# host: <%= Rails.application.credentials.db[:host] %>
|
59
|
-
|
64
|
+
password: <%= Rails.application.credentials.db[:password] %>
|
60
|
-
|
65
|
+
host: <%= Rails.application.credentials.db[:host] %>
|
61
66
|
```
|
62
67
|
```docker-env
|
63
68
|
#.docker-env
|
@@ -135,7 +140,7 @@
|
|
135
140
|
|
136
141
|
```
|
137
142
|
|
138
|
-
### 試したこと
|
143
|
+
### 試したこと1
|
139
144
|
database.ymlを以下のようにしてdocker compose up -dすると
|
140
145
|
普通に立ち上がりデータベースにデータも保存できます。
|
141
146
|
```database.yml
|
@@ -168,7 +173,42 @@
|
|
168
173
|
host: test
|
169
174
|
```
|
170
175
|
|
171
|
-
### 試したこと
|
176
|
+
### 試したこと2
|
177
|
+
以下のようにproductionをコメントアウトしても
|
178
|
+
# username: <%= Rails.application.credentials.db[:user] %>
|
179
|
+
↑の行で同じエラーが出ます。
|
180
|
+
|
181
|
+
```database.yml
|
182
|
+
default: &default
|
183
|
+
adapter: mysql2
|
184
|
+
encoding: utf8mb4
|
185
|
+
pool: 5
|
186
|
+
timeout: 3306
|
187
|
+
host: db
|
188
|
+
|
189
|
+
development:
|
190
|
+
<<: *default
|
191
|
+
username: root
|
192
|
+
host: db
|
193
|
+
database: rails_sample_development
|
194
|
+
socket: /tmp/mysql.sock
|
195
|
+
|
196
|
+
# test:
|
197
|
+
# <<: *default
|
198
|
+
# username: root
|
199
|
+
# host: <%= ENV['DB_HOST'] %>
|
200
|
+
# database: rails_sample_db
|
201
|
+
# socket: /tmp/mysql.sock
|
202
|
+
|
203
|
+
# production:
|
204
|
+
# <<: *default
|
205
|
+
# username: <%= Rails.application.credentials.db[:user] %>
|
206
|
+
# host: <%= Rails.application.credentials.db[:host] %>
|
207
|
+
# password: <%= Rails.application.credentials.db[:password] %>
|
208
|
+
# database: <%= Rails.application.credentials.db[:name] %>
|
209
|
+
```
|
210
|
+
|
211
|
+
### 試したこと3
|
172
212
|
以下のページを参考にproductionのcredentialsを設定してみました。
|
173
213
|
https://zenn.dev/banrih/articles/f22f0a70bbead2a02110
|
174
214
|
|
@@ -185,7 +225,7 @@
|
|
185
225
|
|
186
226
|
こちらは同じエラーメッセージが出るだけでした。
|
187
227
|
|
188
|
-
### 試したこと
|
228
|
+
### 試したこと4
|
189
229
|
以下のURLの「Railsはcredentialファイルを暗号化するためのマスターキーにconfig/master.keyか環境変数ENV["RAILS_MASTER_KEY"]を使用します。」を見て
|
190
230
|
https://railsguides.jp/security.html#%E7%8B%AC%E8%87%AA%E3%81%AEcredential
|
191
231
|
|
3
ソースコードのdocker-envに追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
dababase.ymlのコメントアウトしているproduction設定が意図せず読み込まれてしまいます。
|
3
3
|
~~確認すべきファイルや設定場所などの見当がつかない状態です。
|
4
4
|
どこから確認すべきかをご教授いただけましたら幸いです。~~
|
5
|
-
|
5
|
+
自分なりに確認していたところproduction設定が読み込まれるきっかけっぽいところを発見しました。
|
6
6
|
database.ymlに本番環境でRails.application.credentialsとして読み込もうとすると
|
7
7
|
ローカルでdocker compose up -dしてもproductionを読み込みにいってしまいます。
|
8
8
|
ローカルで立ち上げた時はdevelopment、本番ではproductionを設定したいのですが
|
@@ -59,7 +59,9 @@
|
|
59
59
|
# password: <%= Rails.application.credentials.db[:password] %>
|
60
60
|
# database: <%= Rails.application.credentials.db[:name] %>
|
61
61
|
```
|
62
|
-
```
|
62
|
+
```docker-env
|
63
|
+
#.docker-env
|
64
|
+
RAILS_MASTER_EKY=ここにはconfig/master.keyの英数字をコピペしています。
|
63
65
|
RAILS_ENV=development
|
64
66
|
RACK_ENV=development
|
65
67
|
```
|
@@ -183,7 +185,20 @@
|
|
183
185
|
|
184
186
|
こちらは同じエラーメッセージが出るだけでした。
|
185
187
|
|
188
|
+
### 試したこと3
|
189
|
+
以下のURLの「Railsはcredentialファイルを暗号化するためのマスターキーにconfig/master.keyか環境変数ENV["RAILS_MASTER_KEY"]を使用します。」を見て
|
190
|
+
https://railsguides.jp/security.html#%E7%8B%AC%E8%87%AA%E3%81%AEcredential
|
191
|
+
|
192
|
+
macのターミナルで以下のコマンドを打ってみましたがRAILS_MASTER_KEYは出てきませんでした。
|
193
|
+
|
194
|
+
|
195
|
+
```export.sh
|
196
|
+
|
197
|
+
$ export -p
|
198
|
+
|
199
|
+
```
|
200
|
+
|
186
|
-
###環境
|
201
|
+
### 環境
|
187
202
|
mac 10.15.7
|
188
203
|
ruby 2.6.8
|
189
204
|
raiils 6.1.4.1
|
2
試したことを追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -166,6 +166,23 @@
|
|
166
166
|
host: test
|
167
167
|
```
|
168
168
|
|
169
|
+
### 試したこと2
|
170
|
+
以下のページを参考にproductionのcredentialsを設定してみました。
|
171
|
+
https://zenn.dev/banrih/articles/f22f0a70bbead2a02110
|
172
|
+
|
173
|
+
```credentials
|
174
|
+
|
175
|
+
$ EDITOR="vim" bin/rails credentials:edit -e production
|
176
|
+
db:
|
177
|
+
name: production
|
178
|
+
user: rdsuser
|
179
|
+
password: rdspassword
|
180
|
+
host: rdshost.amazon.com
|
181
|
+
|
182
|
+
```
|
183
|
+
|
184
|
+
こちらは同じエラーメッセージが出るだけでした。
|
185
|
+
|
169
186
|
###環境
|
170
187
|
mac 10.15.7
|
171
188
|
ruby 2.6.8
|
1
質問、ソースコード、やってみたことを追記&修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
### 質問
|
2
2
|
dababase.ymlのコメントアウトしているproduction設定が意図せず読み込まれてしまいます。
|
3
|
-
確認すべきファイルや設定場所などの見当がつかない状態です。
|
3
|
+
~~確認すべきファイルや設定場所などの見当がつかない状態です。
|
4
|
-
どこから確認すべきかをご教授いただけましたら幸いです。
|
4
|
+
どこから確認すべきかをご教授いただけましたら幸いです。~~
|
5
|
+
少しテストしていたところproduction設定が読み込まれるきっかけっぽいところを発見しました。
|
6
|
+
database.ymlに本番環境でRails.application.credentialsとして読み込もうとすると
|
7
|
+
ローカルでdocker compose up -dしてもproductionを読み込みにいってしまいます。
|
8
|
+
ローカルで立ち上げた時はdevelopment、本番ではproductionを設定したいのですが
|
9
|
+
設定が間違っている箇所、確認すべき場所などご教授いただけましたら幸いです。
|
5
10
|
|
6
11
|
### 発生している問題・エラーメッセージ
|
7
12
|
ブラウザに初回アクセスした際は以下のメッセージが白背景の黒文字で表示されます。
|
@@ -114,6 +119,20 @@
|
|
114
119
|
volumes:
|
115
120
|
db-volume:
|
116
121
|
```
|
122
|
+
|
123
|
+
なおdatabase.ymlのproductionで読みに行く値は以下のようにホストPCで設定しています。(docker execでアプリコンテナ内で実行できなかったため)
|
124
|
+
|
125
|
+
```credentials.sh
|
126
|
+
|
127
|
+
$ EDITOR=vim rails credentials:edit
|
128
|
+
db:
|
129
|
+
name: production
|
130
|
+
user: rdsuser
|
131
|
+
password: rdspassword
|
132
|
+
host: rdshost.amazon.com
|
133
|
+
|
134
|
+
```
|
135
|
+
|
117
136
|
### 試したこと
|
118
137
|
database.ymlを以下のようにしてdocker compose up -dすると
|
119
138
|
普通に立ち上がりデータベースにデータも保存できます。
|
@@ -124,12 +143,27 @@
|
|
124
143
|
pool: 5
|
125
144
|
timeout: 3306
|
126
145
|
host: db
|
146
|
+
|
127
147
|
development:
|
128
148
|
<<: *default
|
129
149
|
username: root
|
130
150
|
host: db
|
151
|
+
database: rails_sample_development
|
152
|
+
socket: /tmp/mysql.sock
|
153
|
+
|
154
|
+
test:
|
155
|
+
<<: *default
|
156
|
+
username: root
|
157
|
+
host: <%= ENV['DB_HOST'] %>
|
131
158
|
database: rails_sample_db
|
132
159
|
socket: /tmp/mysql.sock
|
160
|
+
|
161
|
+
production:
|
162
|
+
<<: *default
|
163
|
+
database: test
|
164
|
+
username: test
|
165
|
+
password: test
|
166
|
+
host: test
|
133
167
|
```
|
134
168
|
|
135
169
|
###環境
|