回答編集履歴

4

追記

2021/11/17 01:33

投稿

KAOsaka
KAOsaka

スコア531

test CHANGED
@@ -169,3 +169,37 @@
169
169
 
170
170
 
171
171
  その後、再度ローカルディレクトリをマウントし、起動できるかどうかの確認をしてみてください。
172
+
173
+
174
+
175
+ ## 追記
176
+
177
+
178
+
179
+ > いかのようなログが出力されました。正常には立ち上がっているようです。
180
+
181
+
182
+
183
+ 正常に立ち上がったのであれば、正常に立ち上がった状態の`/var/lib/mysql`ディレクトリがコンテナ内にありますので、
184
+
185
+ コンテナが立ち上がっている状態で、以下のコマンドでコンテナ内の`/var/lib/mysql`ディレクトリをローカルの`./src/db/mysql_data`ディレクトリにコピーしてください。
186
+
187
+
188
+
189
+ ``` bash
190
+
191
+ docker cp [コンテナID]:/var/lib/mysql ./src/db/mysql_data
192
+
193
+ ```
194
+
195
+
196
+
197
+ その後、docker-compose.ymlのvolumes部分のコメントアウトを外し、ローカルの`./src/db/mysql_data`ディレクトリを使用した状態でコンテナが立ち上がるかの確認をしてください。
198
+
199
+
200
+
201
+ > http://localhost:3000を開いた際に以下のようなメッセージが出力されました
202
+
203
+
204
+
205
+ webのコンテナ設定をコメントアウトしているためかと思われます。

3

追記

2021/11/17 01:33

投稿

KAOsaka
KAOsaka

スコア531

test CHANGED
@@ -109,3 +109,63 @@
109
109
 
110
110
 
111
111
  `docker-compose run コンテナ名`または`docker compose run コンテナ名`を使用してください。
112
+
113
+
114
+
115
+ ## 追記
116
+
117
+
118
+
119
+ > src/db/mysql_data以下のファイルを削除してみてください。
120
+
121
+
122
+
123
+ これでも立ち上がらなければ、一旦ローカルディレクトリのマウントを外して立ち上げた上で、正常に起動したコンテナの`/var/lib/mysql`をローカルの`./src/db/mysql_data`にコピーしてみてください。
124
+
125
+
126
+
127
+ ``` yml
128
+
129
+ version: '3'
130
+
131
+ services:
132
+
133
+ db:
134
+
135
+ image: mysql:8.0
136
+
137
+ command: --default-authentication-plugin=mysql_native_password
138
+
139
+ # volumes:
140
+
141
+ # - ./src/db/mysql_data:/var/lib/mysql
142
+
143
+ environment:
144
+
145
+ MYSQL_ROOT_PASSWORD: password
146
+
147
+
148
+
149
+ # web:
150
+
151
+ # build: .
152
+
153
+ # command: bundle exec rails s -p 3000 -b '0.0.0.0'
154
+
155
+ # volumes:
156
+
157
+ # - ./src:/app
158
+
159
+ # ports:
160
+
161
+ # - "3000:3000"
162
+
163
+ # depends_on:
164
+
165
+ # - db
166
+
167
+ ```
168
+
169
+
170
+
171
+ その後、再度ローカルディレクトリをマウントし、起動できるかどうかの確認をしてみてください。

2

追記

2021/11/09 09:06

投稿

KAOsaka
KAOsaka

スコア531

test CHANGED
@@ -87,3 +87,25 @@
87
87
  # - db
88
88
 
89
89
  ```
90
+
91
+
92
+
93
+ ## 追記
94
+
95
+
96
+
97
+ > コマンドを打つ際dbコンテナのみを立ち上げる際はどのようなコマンドでしょうか。
98
+
99
+ > すいません、こちらのようなコマンドでしょうか
100
+
101
+ >
102
+
103
+ > `docker run --name コンテナ名 -e MYSQL_ROOT_PASSWORD=secret -d mysql8.0`
104
+
105
+
106
+
107
+ `docker run`コマンドではdocker-compose.ymlに定義されているdbコンテナは立ち上がりません。
108
+
109
+
110
+
111
+ `docker-compose run コンテナ名`または`docker compose run コンテナ名`を使用してください。

1

追記

2021/11/09 06:56

投稿

KAOsaka
KAOsaka

スコア531

test CHANGED
@@ -23,3 +23,67 @@
23
23
 
24
24
 
25
25
  のようです。
26
+
27
+
28
+
29
+ ## 追記
30
+
31
+
32
+
33
+ > たしかにそこが違っていたので直して実行してみたところ
34
+
35
+ > このようなエラーが出ました
36
+
37
+ >
38
+
39
+ > Unknown MySQL server host 'db' (-3)
40
+
41
+
42
+
43
+ おそらく`db`コンテナが立ち上がっていない(立ち上がってすぐ落ちている)ため、`web`コンテナから参照できていない状態かと思われます。
44
+
45
+ まずは`web`コンテナの設定をコメントアウトして、`db`コンテナが立ち上がるように修正してみてはいかがでしょうか。
46
+
47
+
48
+
49
+ ``` yml
50
+
51
+ version: '3'
52
+
53
+ services:
54
+
55
+ db:
56
+
57
+ image: mysql:8.0
58
+
59
+ command: --default-authentication-plugin=mysql_native_password
60
+
61
+ volumes:
62
+
63
+ - ./src/db/mysql_data:/var/lib/mysql
64
+
65
+ environment:
66
+
67
+ MYSQL_ROOT_PASSWORD: password
68
+
69
+
70
+
71
+ # web:
72
+
73
+ # build: .
74
+
75
+ # command: bundle exec rails s -p 3000 -b '0.0.0.0'
76
+
77
+ # volumes:
78
+
79
+ # - ./src:/app
80
+
81
+ # ports:
82
+
83
+ # - "3000:3000"
84
+
85
+ # depends_on:
86
+
87
+ # - db
88
+
89
+ ```