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