回答編集履歴
3
database.ymlを全部記載
test
CHANGED
@@ -36,8 +36,6 @@
|
|
36
36
|
|
37
37
|
```yaml
|
38
38
|
|
39
|
-
...
|
40
|
-
|
41
39
|
default: &default
|
42
40
|
|
43
41
|
adapter: mysql2
|
@@ -50,11 +48,39 @@
|
|
50
48
|
|
51
49
|
password: password
|
52
50
|
|
53
|
-
# host: db # コメントアウトして、下記を追加
|
54
|
-
|
55
51
|
host: 127.0.0.1
|
56
52
|
|
53
|
+
# host: localhost
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
development:
|
58
|
+
|
59
|
+
<<: *default
|
60
|
+
|
61
|
+
database: development_database
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
# Warning: The database defined as "test" will be erased and
|
66
|
+
|
67
|
+
# re-generated from your development database when you run "rake".
|
68
|
+
|
69
|
+
# Do not set this db to the same as development or production.
|
70
|
+
|
57
|
-
|
71
|
+
test:
|
72
|
+
|
73
|
+
<<: *default
|
74
|
+
|
75
|
+
database: test_database
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
production:
|
80
|
+
|
81
|
+
<<: *default
|
82
|
+
|
83
|
+
database: production_database
|
58
84
|
|
59
85
|
```
|
60
86
|
|
2
sockエラー対応
test
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
# host: db # コメントアウトして、下記を追加
|
54
54
|
|
55
|
-
host:
|
55
|
+
host: 127.0.0.1
|
56
56
|
|
57
57
|
...
|
58
58
|
|
1
レスをもとに追記
test
CHANGED
@@ -17,3 +17,109 @@
|
|
17
17
|
docker-compose exec web bundle exec rake db:migrate RAILS_ENV=test
|
18
18
|
|
19
19
|
```
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
### 【追記】 9/25
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
ローカルとdockerで2つのrubyが存在するようですね。
|
28
|
+
|
29
|
+
まずはローカルで動作確認してみましょう。
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
databese.yml を下記のように修正します。
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
```yaml
|
38
|
+
|
39
|
+
...
|
40
|
+
|
41
|
+
default: &default
|
42
|
+
|
43
|
+
adapter: mysql2
|
44
|
+
|
45
|
+
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
46
|
+
|
47
|
+
timeout: 5000
|
48
|
+
|
49
|
+
username: root
|
50
|
+
|
51
|
+
password: password
|
52
|
+
|
53
|
+
# host: db # コメントアウトして、下記を追加
|
54
|
+
|
55
|
+
host: localhost
|
56
|
+
|
57
|
+
...
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
ローカルで、rspecを実行して動作しますでしょうか?
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
**【ここから先、小咄なのでテキトウに聞いてください】**
|
70
|
+
|
71
|
+
現実世界(macOS)とどっかの仮想世界(docker内のlinux)の2つの世界のよく似たrubyさんがいらっしゃるようで、
|
72
|
+
|
73
|
+
DaigoIkedaさんは、その2人を同一人物として命令されているようです。
|
74
|
+
|
75
|
+
この2人はよく似てますが別人なので、住む世界(OS)も年齢(version)も持っているスキル(gem list)も違います。
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
現実世界のrubyさんの年齢とスキルを調べる
|
80
|
+
|
81
|
+
```sh
|
82
|
+
|
83
|
+
ruby -v
|
84
|
+
|
85
|
+
gem list
|
86
|
+
|
87
|
+
```
|
88
|
+
|
89
|
+
仮想世界のrubyさんの年齢とスキルを調べる
|
90
|
+
|
91
|
+
```sh
|
92
|
+
|
93
|
+
docker-compose exec web ruby -v
|
94
|
+
|
95
|
+
docker-compose exec web gem list
|
96
|
+
|
97
|
+
```
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
また、mysqlさんは、仮想世界の住人ですが、現実世界でも会話できるよう回線を引いています。
|
102
|
+
|
103
|
+
仮想世界では、db:3306 で通話できますが、現実世界では、localhost:3306で通話します。
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
ですので、どちらか片方にだけ命令すると決めるといいかもしれません。
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
それと厄介なことに、Dockerfileを確認したところ仮想世界のrubyさんのスキルは、Gemfileを更新してもdocker-compose buildしないと更新されない構成になっています。
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
個人的には、DBはdockerで起動し、APP(rails)はローカルのRVMを使って開発したほうがいいです。
|
116
|
+
|
117
|
+
macユーザは特になのですが、docker for macで頻繁に変更されるディレクトリをマウントすると死ぬほど遅く、猛烈なストレスで開発どころじゃなくなります。
|
118
|
+
|
119
|
+
docker-syncを使うと速度的には改善されますが、スリープすると同期されなくなることがあったり、どうでもいい気苦労をしなければならなくなります。
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
参考)
|
124
|
+
|
125
|
+
https://qiita.com/pocari/items/0340049742927f3a94b7
|