質問編集履歴

7

追記

2020/02/01 14:50

投稿

zyno
zyno

スコア41

test CHANGED
File without changes
test CHANGED
@@ -336,4 +336,190 @@
336
336
 
337
337
  DB:MySQL
338
338
 
339
- Dockerを用いてRailsとNginXとMySQLを仮想化しています
339
+ Dockerを用いてRailsとNginXとMySQLを仮想化しています
340
+
341
+
342
+
343
+
344
+
345
+ ```docker-compose.yml
346
+
347
+ #docker-compose.yml
348
+
349
+ version: "2"
350
+
351
+ services:
352
+
353
+ app:
354
+
355
+ build:
356
+
357
+ context: .
358
+
359
+ dockerfile: ./docker/rails/Dockerfile
360
+
361
+ command: bundle exec unicorn -p 3000 -c /app/config/unicorn.rb
362
+
363
+ # command: bundle exec rails s -p 3000 -b '0.0.0.0'
364
+
365
+ ports:
366
+
367
+ - "3000:3000"
368
+
369
+ volumes:
370
+
371
+ - /var/tmp
372
+
373
+ - .:/app
374
+
375
+ - bundle:/bundle
376
+
377
+ depends_on:
378
+
379
+ - db
380
+
381
+ extends:
382
+
383
+ file: ./docker/mysql/password.yml
384
+
385
+ service: password
386
+
387
+ stdin_open: true
388
+
389
+ tty: true
390
+
391
+
392
+
393
+ db:
394
+
395
+ build:
396
+
397
+ context: .
398
+
399
+ dockerfile: ./docker/mysql/Dockerfile
400
+
401
+ ports:
402
+
403
+ - "3306:3306"
404
+
405
+ volumes:
406
+
407
+ - db_data:/var/lib/mysql
408
+
409
+ extends:
410
+
411
+ file: ./docker/mysql/password.yml
412
+
413
+ service: password
414
+
415
+
416
+
417
+ volumes:
418
+
419
+ db_data:
420
+
421
+ bundle:
422
+
423
+ driver: local
424
+
425
+ ```
426
+
427
+
428
+
429
+ ```
430
+
431
+ #mysql/Dockerfile
432
+
433
+ FROM mysql:5.7
434
+
435
+
436
+
437
+ RUN apt-get update && \
438
+
439
+ apt-get install -y apt-utils \
440
+
441
+ locales && \
442
+
443
+ rm -rf /var/lib/apt/lists/* && \
444
+
445
+ echo "ja_JP.UTF-8 UTF-8" > /etc/locale.gen && \
446
+
447
+ locale-gen ja_JP.UTF-8
448
+
449
+ ENV LC_ALL ja_JP.UTF-8
450
+
451
+ ADD ./docker/mysql/charset.cnf /etc/mysql/conf.d/charset.cnf
452
+
453
+
454
+
455
+ ```
456
+
457
+
458
+
459
+ ```
460
+
461
+ #nginx/Dockerfile
462
+
463
+ FROM mysql:5.7
464
+
465
+ FROM nginx:1.16
466
+
467
+ RUN apt-get update && \
468
+
469
+ apt-get install -y apt-utils \
470
+
471
+ locales && \
472
+
473
+ echo "ja_JP.UTF-8 UTF-8" > /etc/locale.gen && \
474
+
475
+ locale-gen ja_JP.UTF-8
476
+
477
+ ENV LC_ALL ja_JP.UTF-8
478
+
479
+ ADD ./docker/nginx/nginx.conf /etc/nginx/nginx.conf
480
+
481
+ ADD ./docker/nginx/default.conf /etc/nginx/conf.d/default.conf
482
+
483
+
484
+
485
+ ```
486
+
487
+
488
+
489
+ ```
490
+
491
+ #rails/Dockerfile
492
+
493
+ FROM ruby:2.6.3
494
+
495
+ RUN apt-get update -qq && \
496
+
497
+ apt-get install -y apt-utils \
498
+
499
+ build-essential \
500
+
501
+ libpq-dev \
502
+
503
+ nodejs \
504
+
505
+ default-mysql-client
506
+
507
+ RUN mkdir /app
508
+
509
+ WORKDIR /app
510
+
511
+ ADD Gemfile /app/Gemfile
512
+
513
+ ADD Gemfile.lock /app/Gemfile.lock
514
+
515
+ RUN bundle install -j4
516
+
517
+ ADD . /app
518
+
519
+
520
+
521
+ EXPOSE 3000
522
+
523
+
524
+
525
+ ```

6

変更

2020/02/01 14:50

投稿

zyno
zyno

スコア41

test CHANGED
File without changes
test CHANGED
@@ -82,7 +82,7 @@
82
82
 
83
83
 
84
84
 
85
- ①Mysql2::Error::ConnectionError (Unknown MySQL server host 'db' (0)) で検索
85
+ ######①Mysql2::Error::ConnectionError (Unknown MySQL server host 'db' (0)) で検索
86
86
 
87
87
  https://teratail.com/questions/215785
88
88
 
@@ -140,13 +140,13 @@
140
140
 
141
141
 
142
142
 
143
- ②dockerをdevelopment環境で作っていた時もMysql2::Error::ConnectionErrorで動かなかったことに気づく
143
+ ######②dockerをdevelopment環境で作っていた時もMysql2::Error::ConnectionErrorで動かなかったことに気づく
144
144
 
145
145
  →そこから、docker環境下ではherokuへのデプロイのやり方が違うのではないかということに気づく。
146
146
 
147
147
 
148
148
 
149
- ③「docker heroku デプロイ」で検索した。
149
+ ######③「docker heroku デプロイ」で検索した。
150
150
 
151
151
 
152
152
 
@@ -218,7 +218,7 @@
218
218
 
219
219
 
220
220
 
221
- ④なぜNo images to pushと返されるのかを調べた。
221
+ ######④なぜNo images to pushと返されるのかを調べた。
222
222
 
223
223
 
224
224
 
@@ -230,7 +230,7 @@
230
230
 
231
231
 
232
232
 
233
- ⑤今回Dockerfileを以下のディレクトリ構成図のようにrails nginx dbとディレクトリを分ける形で設置しているが、それだとアプリケーション直下にないからだめらしい。ディレクトリを分けてDockerfile入れている場合にイメージをpushするにはどうすればいいかを考えた。
233
+ ######⑤今回Dockerfileを以下のディレクトリ構成図のようにrails nginx dbとディレクトリを分ける形で設置しているが、それだとアプリケーション直下にないからだめらしい。ディレクトリを分けてDockerfile入れている場合にイメージをpushするにはどうすればいいかを考えた。
234
234
 
235
235
 
236
236
 
@@ -276,7 +276,7 @@
276
276
 
277
277
 
278
278
 
279
- ⑥[「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の中見出し、「複数のイメージを push するには」から、Dockerfileそれぞれの拡張子をweb db middleに変えて`heroku container:push web db middle --recursive`を実行してみた。
279
+ ######⑥[「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の中見出し、「複数のイメージを push するには」から、Dockerfileそれぞれの拡張子をweb db middleに変えて`heroku container:push web db middle --recursive`を実行してみた。
280
280
 
281
281
 
282
282
 

5

書式の改善

2020/01/24 01:27

投稿

zyno
zyno

スコア41

test CHANGED
File without changes
test CHANGED
@@ -88,21 +88,69 @@
88
88
 
89
89
 
90
90
 
91
- から、database.ymlに原因があるのではないかと考え、productionに設定してあるusernameやpasswordをコメントアウトしてもうまく行かない。
91
+ から、database.ymlに原因があるのではないかと考え、productionに設定してあるusernameやpasswordをコメントアウトした。しかし、うまく行かない。
92
+
93
+
94
+
92
-
95
+ ```
96
+
93
-
97
+ #コメントアウト後
98
+
99
+
100
+
94
-
101
+ default: &default
102
+
103
+ adapter: mysql2
104
+
105
+ encoding: utf8
106
+
107
+ pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
108
+
109
+ username: root
110
+
111
+ password: <%= ENV['MYSQL_ROOT_PASSWORD'] %>
112
+
113
+ host: db
114
+
115
+
116
+
117
+ development:
118
+
119
+ <<: *default
120
+
121
+ database: app_development
122
+
123
+
124
+
125
+ production:
126
+
127
+ <<: *default
128
+
129
+ database: app_production
130
+
131
+ username: #app
132
+
133
+ password: #<%= ENV['MYSQL_ROOT_PASSWORD'] %>
134
+
135
+
136
+
137
+
138
+
139
+ ```
140
+
141
+
142
+
95
- ②dockerをdevelopment環境で作っていた時も同じエラーに当たていたことに気づく
143
+ ②dockerをdevelopment環境で作っていた時もMysql2::Error::ConnectionErrorで動かなかったことに気づく
96
-
97
-
98
-
144
+
99
- →docker環境下ではデプロイのやり方が違うのではないかということに気づく。そこからdocker環境下ではデプロイのやり方を調べることに。
145
+ そこから、docker環境下ではherokuへのデプロイのやり方が違うのではないかということに気づく。
100
-
101
-
102
-
146
+
147
+
148
+
103
- ③「docker heroku デプロイ」で検索
149
+ ③「docker heroku デプロイ」で検索した。
104
-
150
+
151
+
152
+
105
- [「Unknown MySQL server host 'db' (0)を消したい」](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)から、
153
+ [「Unknown MySQL server host 'db' (0)を消したい」](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)から、docker環境下でのherokuへのデプロイのやり方が載っていたので、それを実行してみた。
106
154
 
107
155
 
108
156
 
@@ -152,11 +200,11 @@
152
200
 
153
201
 
154
202
 
155
- を実行する。
203
+
156
-
157
-
158
-
204
+
205
+
206
+
159
- →`heroku container:push web`で「No images to push」と返される。
207
+ 実行した結果、`heroku container:push web`の段階で「No images to push」と返される。
160
208
 
161
209
 
162
210
 
@@ -170,7 +218,7 @@
170
218
 
171
219
 
172
220
 
173
- ④なぜNo images to pushと返されるのか
221
+ ④なぜNo images to pushと返されるのかを調べた。
174
222
 
175
223
 
176
224
 
@@ -182,7 +230,7 @@
182
230
 
183
231
 
184
232
 
185
- ⑤今回Dockerfileをrails nginx dbとディレクトリを分ける形で設置しているが、それだとアプリケーション直下にないからだめらしい。ディレクトリを分けてDockerfile入れている場合にイメージをpushするにはどうすればいいか
233
+ ⑤今回Dockerfileを以下のディレクトリ構成図のようにrails nginx dbとディレクトリを分ける形で設置しているが、それだとアプリケーション直下にないからだめらしい。ディレクトリを分けてDockerfile入れている場合にイメージをpushするにはどうすればいいかを考えた。
186
234
 
187
235
 
188
236
 
@@ -226,13 +274,9 @@
226
274
 
227
275
 
228
276
 
229
- 実験
230
-
231
- [「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の中見出し、「複数のイメージを push するには」から
232
-
233
- Dockerfileそれぞれの拡張子をweb db middleに変えて実行
234
-
235
- `heroku container:push web db middle --recursive`
277
+
278
+
279
+ [「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の中見出し、「複数のイメージを push するには」から、Dockerfileそれぞれの拡張子をweb db middleに変えて`heroku container:push web db middle --recursive`を実行してみた。
236
280
 
237
281
 
238
282
 

4

変更

2020/01/24 01:26

投稿

zyno
zyno

スコア41

test CHANGED
File without changes
test CHANGED
@@ -228,7 +228,7 @@
228
228
 
229
229
  実験
230
230
 
231
- [「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の「複数のイメージを push するには」から
231
+ [「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の中見出し、「複数のイメージを push するには」から
232
232
 
233
233
  Dockerfileそれぞれの拡張子をweb db middleに変えて実行
234
234
 

3

変更

2020/01/23 14:05

投稿

zyno
zyno

スコア41

test CHANGED
File without changes
test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
  ③「docker heroku デプロイ」で検索
104
104
 
105
- [Unknown MySQL server host 'db' (0)を消したい](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)から、
105
+ [Unknown MySQL server host 'db' (0)を消したい](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)から、
106
106
 
107
107
 
108
108
 
@@ -228,7 +228,7 @@
228
228
 
229
229
  実験
230
230
 
231
- [Heroku で Docker を使う場合の諸注意](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の「複数のイメージを push するには」から
231
+ [Heroku で Docker を使う場合の諸注意](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の「複数のイメージを push するには」から
232
232
 
233
233
  Dockerfileそれぞれの拡張子をweb db middleに変えて実行
234
234
 

2

変更

2020/01/23 14:04

投稿

zyno
zyno

スコア41

test CHANGED
File without changes
test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  ```ここに言語名を入力
58
58
 
59
- 2020-01-23T09:45:41.310424+00:00 app[web.1]: I, [2020-01-23T09:45:41.310325 #4] INFO -- : [c20c31e8-8549-4372-a4e3-e1dad204f7ab] Started GET "/users/sign_in" for 163.58.83.246 at 2020-01-23 09:45:41 +0000
59
+ 2020-01-23T09:45:41.310424+00:00 app[web.1]: I, [2020-01-23T09:45:41.310325 #4] INFO -- : [c20c31e8-8549-4372-a4e3-e1dad204f7ab] Started GET "/users/sign_in" for at 2020-01-23 09:45:41 +0000
60
60
 
61
61
  2020-01-23T09:45:41.311642+00:00 app[web.1]: I, [2020-01-23T09:45:41.311577 #4] INFO -- : [c20c31e8-8549-4372-a4e3-e1dad204f7ab] Processing by Users::SessionsController#new as HTML
62
62
 

1

変更

2020/01/23 14:03

投稿

zyno
zyno

スコア41

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,21 @@
12
12
 
13
13
 
14
14
 
15
- docker環境下で作ったRailsアプリをherokuにデプロイし、herokuを開くと「We're sorry, but something went wrong.」と返されました。
15
+ docker環境下で作ったRailsアプリをherokuに以下のような命令でデプロイし、herokuを開くと「We're sorry, but something went wrong.」と返されました。
16
+
17
+ ```
18
+
19
+ $ git push heroku
20
+
21
+ $ heroku pg:reset DATABASE
22
+
23
+ $ heroku run rails db:migrate
24
+
25
+ $ heroku run rails db:seed
26
+
27
+ $ heroku restart
28
+
29
+ ```
16
30
 
17
31
 
18
32
 
@@ -36,24 +50,6 @@
36
50
 
37
51
 
38
52
 
39
- 以下の形でデプロイを行った結果、上記の結果になりました。
40
-
41
- ```
42
-
43
- $ git push heroku
44
-
45
- $ heroku pg:reset DATABASE
46
-
47
- $ heroku run rails db:migrate
48
-
49
- $ heroku run rails db:seed
50
-
51
- $ heroku restart
52
-
53
- ```
54
-
55
-
56
-
57
53
  ### 該当のソースコード
58
54
 
59
55