回答編集履歴
4
追記
answer
CHANGED
@@ -83,4 +83,21 @@
|
|
83
83
|
# - db
|
84
84
|
```
|
85
85
|
|
86
|
-
その後、再度ローカルディレクトリをマウントし、起動できるかどうかの確認をしてみてください。
|
86
|
+
その後、再度ローカルディレクトリをマウントし、起動できるかどうかの確認をしてみてください。
|
87
|
+
|
88
|
+
## 追記
|
89
|
+
|
90
|
+
> いかのようなログが出力されました。正常には立ち上がっているようです。
|
91
|
+
|
92
|
+
正常に立ち上がったのであれば、正常に立ち上がった状態の`/var/lib/mysql`ディレクトリがコンテナ内にありますので、
|
93
|
+
コンテナが立ち上がっている状態で、以下のコマンドでコンテナ内の`/var/lib/mysql`ディレクトリをローカルの`./src/db/mysql_data`ディレクトリにコピーしてください。
|
94
|
+
|
95
|
+
``` bash
|
96
|
+
docker cp [コンテナID]:/var/lib/mysql ./src/db/mysql_data
|
97
|
+
```
|
98
|
+
|
99
|
+
その後、docker-compose.ymlのvolumes部分のコメントアウトを外し、ローカルの`./src/db/mysql_data`ディレクトリを使用した状態でコンテナが立ち上がるかの確認をしてください。
|
100
|
+
|
101
|
+
> http://localhost:3000を開いた際に以下のようなメッセージが出力されました
|
102
|
+
|
103
|
+
webのコンテナ設定をコメントアウトしているためかと思われます。
|
3
追記
answer
CHANGED
@@ -53,4 +53,34 @@
|
|
53
53
|
|
54
54
|
`docker run`コマンドではdocker-compose.ymlに定義されているdbコンテナは立ち上がりません。
|
55
55
|
|
56
|
-
`docker-compose run コンテナ名`または`docker compose run コンテナ名`を使用してください。
|
56
|
+
`docker-compose run コンテナ名`または`docker compose run コンテナ名`を使用してください。
|
57
|
+
|
58
|
+
## 追記
|
59
|
+
|
60
|
+
> src/db/mysql_data以下のファイルを削除してみてください。
|
61
|
+
|
62
|
+
これでも立ち上がらなければ、一旦ローカルディレクトリのマウントを外して立ち上げた上で、正常に起動したコンテナの`/var/lib/mysql`をローカルの`./src/db/mysql_data`にコピーしてみてください。
|
63
|
+
|
64
|
+
``` yml
|
65
|
+
version: '3'
|
66
|
+
services:
|
67
|
+
db:
|
68
|
+
image: mysql:8.0
|
69
|
+
command: --default-authentication-plugin=mysql_native_password
|
70
|
+
# volumes:
|
71
|
+
# - ./src/db/mysql_data:/var/lib/mysql
|
72
|
+
environment:
|
73
|
+
MYSQL_ROOT_PASSWORD: password
|
74
|
+
|
75
|
+
# web:
|
76
|
+
# build: .
|
77
|
+
# command: bundle exec rails s -p 3000 -b '0.0.0.0'
|
78
|
+
# volumes:
|
79
|
+
# - ./src:/app
|
80
|
+
# ports:
|
81
|
+
# - "3000:3000"
|
82
|
+
# depends_on:
|
83
|
+
# - db
|
84
|
+
```
|
85
|
+
|
86
|
+
その後、再度ローカルディレクトリをマウントし、起動できるかどうかの確認をしてみてください。
|
2
追記
answer
CHANGED
@@ -42,4 +42,15 @@
|
|
42
42
|
# - "3000:3000"
|
43
43
|
# depends_on:
|
44
44
|
# - db
|
45
|
-
```
|
45
|
+
```
|
46
|
+
|
47
|
+
## 追記
|
48
|
+
|
49
|
+
> コマンドを打つ際dbコンテナのみを立ち上げる際はどのようなコマンドでしょうか。
|
50
|
+
> すいません、こちらのようなコマンドでしょうか
|
51
|
+
>
|
52
|
+
> `docker run --name コンテナ名 -e MYSQL_ROOT_PASSWORD=secret -d mysql8.0`
|
53
|
+
|
54
|
+
`docker run`コマンドではdocker-compose.ymlに定義されているdbコンテナは立ち上がりません。
|
55
|
+
|
56
|
+
`docker-compose run コンテナ名`または`docker compose run コンテナ名`を使用してください。
|
1
追記
answer
CHANGED
@@ -10,4 +10,36 @@
|
|
10
10
|
MYSQL_ROOT_PASSWORD: password
|
11
11
|
```
|
12
12
|
|
13
|
-
のようです。
|
13
|
+
のようです。
|
14
|
+
|
15
|
+
## 追記
|
16
|
+
|
17
|
+
> たしかにそこが違っていたので直して実行してみたところ
|
18
|
+
> このようなエラーが出ました
|
19
|
+
>
|
20
|
+
> Unknown MySQL server host 'db' (-3)
|
21
|
+
|
22
|
+
おそらく`db`コンテナが立ち上がっていない(立ち上がってすぐ落ちている)ため、`web`コンテナから参照できていない状態かと思われます。
|
23
|
+
まずは`web`コンテナの設定をコメントアウトして、`db`コンテナが立ち上がるように修正してみてはいかがでしょうか。
|
24
|
+
|
25
|
+
``` yml
|
26
|
+
version: '3'
|
27
|
+
services:
|
28
|
+
db:
|
29
|
+
image: mysql:8.0
|
30
|
+
command: --default-authentication-plugin=mysql_native_password
|
31
|
+
volumes:
|
32
|
+
- ./src/db/mysql_data:/var/lib/mysql
|
33
|
+
environment:
|
34
|
+
MYSQL_ROOT_PASSWORD: password
|
35
|
+
|
36
|
+
# web:
|
37
|
+
# build: .
|
38
|
+
# command: bundle exec rails s -p 3000 -b '0.0.0.0'
|
39
|
+
# volumes:
|
40
|
+
# - ./src:/app
|
41
|
+
# ports:
|
42
|
+
# - "3000:3000"
|
43
|
+
# depends_on:
|
44
|
+
# - db
|
45
|
+
```
|