質問するログイン新規登録

質問編集履歴

7

追記

2020/02/01 14:50

投稿

zyno
zyno

スコア41

title CHANGED
File without changes
body CHANGED
@@ -167,4 +167,97 @@
167
167
  フロントエンド:BootStrap
168
168
  Web:NginX
169
169
  DB:MySQL
170
- Dockerを用いてRailsとNginXとMySQLを仮想化しています
170
+ Dockerを用いてRailsとNginXとMySQLを仮想化しています
171
+
172
+
173
+ ```docker-compose.yml
174
+ #docker-compose.yml
175
+ version: "2"
176
+ services:
177
+ app:
178
+ build:
179
+ context: .
180
+ dockerfile: ./docker/rails/Dockerfile
181
+ command: bundle exec unicorn -p 3000 -c /app/config/unicorn.rb
182
+ # command: bundle exec rails s -p 3000 -b '0.0.0.0'
183
+ ports:
184
+ - "3000:3000"
185
+ volumes:
186
+ - /var/tmp
187
+ - .:/app
188
+ - bundle:/bundle
189
+ depends_on:
190
+ - db
191
+ extends:
192
+ file: ./docker/mysql/password.yml
193
+ service: password
194
+ stdin_open: true
195
+ tty: true
196
+
197
+ db:
198
+ build:
199
+ context: .
200
+ dockerfile: ./docker/mysql/Dockerfile
201
+ ports:
202
+ - "3306:3306"
203
+ volumes:
204
+ - db_data:/var/lib/mysql
205
+ extends:
206
+ file: ./docker/mysql/password.yml
207
+ service: password
208
+
209
+ volumes:
210
+ db_data:
211
+ bundle:
212
+ driver: local
213
+ ```
214
+
215
+ ```
216
+ #mysql/Dockerfile
217
+ FROM mysql:5.7
218
+
219
+ RUN apt-get update && \
220
+ apt-get install -y apt-utils \
221
+ locales && \
222
+ rm -rf /var/lib/apt/lists/* && \
223
+ echo "ja_JP.UTF-8 UTF-8" > /etc/locale.gen && \
224
+ locale-gen ja_JP.UTF-8
225
+ ENV LC_ALL ja_JP.UTF-8
226
+ ADD ./docker/mysql/charset.cnf /etc/mysql/conf.d/charset.cnf
227
+
228
+ ```
229
+
230
+ ```
231
+ #nginx/Dockerfile
232
+ FROM mysql:5.7
233
+ FROM nginx:1.16
234
+ RUN apt-get update && \
235
+ apt-get install -y apt-utils \
236
+ locales && \
237
+ echo "ja_JP.UTF-8 UTF-8" > /etc/locale.gen && \
238
+ locale-gen ja_JP.UTF-8
239
+ ENV LC_ALL ja_JP.UTF-8
240
+ ADD ./docker/nginx/nginx.conf /etc/nginx/nginx.conf
241
+ ADD ./docker/nginx/default.conf /etc/nginx/conf.d/default.conf
242
+
243
+ ```
244
+
245
+ ```
246
+ #rails/Dockerfile
247
+ FROM ruby:2.6.3
248
+ RUN apt-get update -qq && \
249
+ apt-get install -y apt-utils \
250
+ build-essential \
251
+ libpq-dev \
252
+ nodejs \
253
+ default-mysql-client
254
+ RUN mkdir /app
255
+ WORKDIR /app
256
+ ADD Gemfile /app/Gemfile
257
+ ADD Gemfile.lock /app/Gemfile.lock
258
+ RUN bundle install -j4
259
+ ADD . /app
260
+
261
+ EXPOSE 3000
262
+
263
+ ```

6

変更

2020/02/01 14:50

投稿

zyno
zyno

スコア41

title CHANGED
File without changes
body CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
 
42
42
 
43
- ①Mysql2::Error::ConnectionError (Unknown MySQL server host 'db' (0)) で検索
43
+ ######①Mysql2::Error::ConnectionError (Unknown MySQL server host 'db' (0)) で検索
44
44
  https://teratail.com/questions/215785
45
45
 
46
46
  から、database.ymlに原因があるのではないかと考え、productionに設定してあるusernameやpasswordをコメントアウトした。しかし、うまく行かない。
@@ -69,10 +69,10 @@
69
69
 
70
70
  ```
71
71
 
72
- ②dockerをdevelopment環境で作っていた時もMysql2::Error::ConnectionErrorで動かなかったことに気づく
72
+ ######②dockerをdevelopment環境で作っていた時もMysql2::Error::ConnectionErrorで動かなかったことに気づく
73
73
  →そこから、docker環境下ではherokuへのデプロイのやり方が違うのではないかということに気づく。
74
74
 
75
- ③「docker heroku デプロイ」で検索した。
75
+ ######③「docker heroku デプロイ」で検索した。
76
76
 
77
77
  [「Unknown MySQL server host 'db' (0)を消したい」](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)から、docker環境下でのherokuへのデプロイのやり方が載っていたので、それを実行してみた。
78
78
 
@@ -108,13 +108,13 @@
108
108
  ▸ No images to push
109
109
  ```
110
110
 
111
- ④なぜNo images to pushと返されるのかを調べた。
111
+ ######④なぜNo images to pushと返されるのかを調べた。
112
112
 
113
113
  [DockerでRailsの環境構築してHerokuへデプロイする](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)
114
114
 
115
115
  から、「No images to push」はアプリケーション直下にあるDockerfileじゃないとherokuにpushできませんよということらしい。
116
116
 
117
- ⑤今回Dockerfileを以下のディレクトリ構成図のようにrails nginx dbとディレクトリを分ける形で設置しているが、それだとアプリケーション直下にないからだめらしい。ディレクトリを分けてDockerfile入れている場合にイメージをpushするにはどうすればいいかを考えた。
117
+ ######⑤今回Dockerfileを以下のディレクトリ構成図のようにrails nginx dbとディレクトリを分ける形で設置しているが、それだとアプリケーション直下にないからだめらしい。ディレクトリを分けてDockerfile入れている場合にイメージをpushするにはどうすればいいかを考えた。
118
118
 
119
119
  [Heroku で Docker を使う場合の諸注意](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)
120
120
  [Heroku Container Registry & Runtime とは(Heroku Dev Center の私家訳)](https://qiita.com/ysaito8015@github/items/0d2d32a553d0414a700e)
@@ -137,7 +137,7 @@
137
137
 
138
138
 
139
139
 
140
- ⑥[「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の中見出し、「複数のイメージを push するには」から、Dockerfileそれぞれの拡張子をweb db middleに変えて`heroku container:push web db middle --recursive`を実行してみた。
140
+ ######⑥[「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の中見出し、「複数のイメージを push するには」から、Dockerfileそれぞれの拡張子をweb db middleに変えて`heroku container:push web db middle --recursive`を実行してみた。
141
141
 
142
142
  ```
143
143
  === Building web (/Users/[username]/code/chiki/docker/rails/Dockerfile.web)

5

書式の改善

2020/01/24 01:27

投稿

zyno
zyno

スコア41

title CHANGED
File without changes
body CHANGED
@@ -43,16 +43,40 @@
43
43
  ①Mysql2::Error::ConnectionError (Unknown MySQL server host 'db' (0)) で検索
44
44
  https://teratail.com/questions/215785
45
45
 
46
- から、database.ymlに原因があるのではないかと考え、productionに設定してあるusernameやpasswordをコメントアウトしてもうまく行かない。
46
+ から、database.ymlに原因があるのではないかと考え、productionに設定してあるusernameやpasswordをコメントアウトした。しかし、うまく行かない。
47
47
 
48
+ ```
48
- ②dockerをdevelopment環境で作っていた時も同じエラーに当たっていたことに気づく
49
+ #コメントアウト後
49
50
 
51
+ default: &default
52
+ adapter: mysql2
53
+ encoding: utf8
50
- →docker環境下ではデプロイのやり方が違うのではないかということに気づく。そこからdocker環境下ではデプロイのやり方を調べることに。
54
+ pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
55
+ username: root
56
+ password: <%= ENV['MYSQL_ROOT_PASSWORD'] %>
57
+ host: db
51
58
 
59
+ development:
60
+ <<: *default
52
- ③「docker heroku デプロイ」で検索
61
+ database: app_development
53
- [「Unknown MySQL server host 'db' (0)を消したい」](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)から、
54
62
 
63
+ production:
64
+ <<: *default
65
+ database: app_production
66
+ username: #app
67
+ password: #<%= ENV['MYSQL_ROOT_PASSWORD'] %>
68
+
69
+
55
70
  ```
71
+
72
+ ②dockerをdevelopment環境で作っていた時もMysql2::Error::ConnectionErrorで動かなかったことに気づく
73
+ →そこから、docker環境下ではherokuへのデプロイのやり方が違うのではないかということに気づく。
74
+
75
+ ③「docker heroku デプロイ」で検索した。
76
+
77
+ [「Unknown MySQL server host 'db' (0)を消したい」](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)から、docker環境下でのherokuへのデプロイのやり方が載っていたので、それを実行してみた。
78
+
79
+ ```
56
80
  # herokuのコンテナレジストリにログイン
57
81
  heroku container:login
58
82
 
@@ -75,22 +99,22 @@
75
99
  heroku open
76
100
  ```
77
101
 
78
- を実行する。
79
102
 
80
- →`heroku container:push web`で「No images to push」と返される。
81
103
 
104
+ →実行した結果、`heroku container:push web`の段階で「No images to push」と返される。
105
+
82
106
  ```
83
107
  $ heroku container:push web
84
108
  ▸ No images to push
85
109
  ```
86
110
 
87
- ④なぜNo images to pushと返されるのか
111
+ ④なぜNo images to pushと返されるのかを調べた。
88
112
 
89
113
  [DockerでRailsの環境構築してHerokuへデプロイする](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)
90
114
 
91
115
  から、「No images to push」はアプリケーション直下にあるDockerfileじゃないとherokuにpushできませんよということらしい。
92
116
 
93
- ⑤今回Dockerfileをrails nginx dbとディレクトリを分ける形で設置しているが、それだとアプリケーション直下にないからだめらしい。ディレクトリを分けてDockerfile入れている場合にイメージをpushするにはどうすればいいか
117
+ ⑤今回Dockerfileを以下のディレクトリ構成図のようにrails nginx dbとディレクトリを分ける形で設置しているが、それだとアプリケーション直下にないからだめらしい。ディレクトリを分けてDockerfile入れている場合にイメージをpushするにはどうすればいいかを考えた。
94
118
 
95
119
  [Heroku で Docker を使う場合の諸注意](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)
96
120
  [Heroku Container Registry & Runtime とは(Heroku Dev Center の私家訳)](https://qiita.com/ysaito8015@github/items/0d2d32a553d0414a700e)
@@ -112,11 +136,9 @@
112
136
  ```
113
137
 
114
138
 
115
- 実験
116
- [「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の中見出し、「複数のイメージを push するには」から
117
- Dockerfileそれぞれの拡張子をweb db middleに変えて実行
118
- `heroku container:push web db middle --recursive`
119
139
 
140
+ ⑥[「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の中見出し、「複数のイメージを push するには」から、Dockerfileそれぞれの拡張子をweb db middleに変えて`heroku container:push web db middle --recursive`を実行してみた。
141
+
120
142
  ```
121
143
  === Building web (/Users/[username]/code/chiki/docker/rails/Dockerfile.web)
122
144
  Sending build context to Docker daemon 3.072kB

4

変更

2020/01/24 01:26

投稿

zyno
zyno

スコア41

title CHANGED
File without changes
body CHANGED
@@ -113,7 +113,7 @@
113
113
 
114
114
 
115
115
  実験
116
- [「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の「複数のイメージを push するには」から
116
+ [「Heroku で Docker を使う場合の諸注意」](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の中見出し、「複数のイメージを push するには」から
117
117
  Dockerfileそれぞれの拡張子をweb db middleに変えて実行
118
118
  `heroku container:push web db middle --recursive`
119
119
 

3

変更

2020/01/23 14:05

投稿

zyno
zyno

スコア41

title CHANGED
File without changes
body CHANGED
@@ -50,7 +50,7 @@
50
50
  →docker環境下ではデプロイのやり方が違うのではないかということに気づく。そこからdocker環境下ではデプロイのやり方を調べることに。
51
51
 
52
52
  ③「docker heroku デプロイ」で検索
53
- [Unknown MySQL server host 'db' (0)を消したい](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)から、
53
+ [Unknown MySQL server host 'db' (0)を消したい](https://qiita.com/fuku_tech/items/dc6b568f7f34df10cae7)から、
54
54
 
55
55
  ```
56
56
  # herokuのコンテナレジストリにログイン
@@ -113,7 +113,7 @@
113
113
 
114
114
 
115
115
  実験
116
- [Heroku で Docker を使う場合の諸注意](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の「複数のイメージを push するには」から
116
+ [Heroku で Docker を使う場合の諸注意](https://qiita.com/sho7650/items/9654377a8fc2d4db236d)の「複数のイメージを push するには」から
117
117
  Dockerfileそれぞれの拡張子をweb db middleに変えて実行
118
118
  `heroku container:push web db middle --recursive`
119
119
 

2

変更

2020/01/23 14:04

投稿

zyno
zyno

スコア41

title CHANGED
File without changes
body CHANGED
@@ -27,7 +27,7 @@
27
27
  ### 該当のソースコード
28
28
 
29
29
  ```ここに言語名を入力
30
- 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
30
+ 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
31
31
  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
32
32
  2020-01-23T09:45:41.331884+00:00 app[web.1]: I, [2020-01-23T09:45:41.331758 #4] INFO -- : [c20c31e8-8549-4372-a4e3-e1dad204f7ab] Completed 500 Internal Server Error in 20ms
33
33
  2020-01-23T09:45:41.333343+00:00 app[web.1]: F, [2020-01-23T09:45:41.333249 #4] FATAL -- : [c20c31e8-8549-4372-a4e3-e1dad204f7ab]

1

変更

2020/01/23 14:03

投稿

zyno
zyno

スコア41

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,14 @@
5
5
  ### 発生している問題・エラーメッセージ
6
6
 
7
7
 
8
- docker環境下で作ったRailsアプリをherokuにデプロイし、herokuを開くと「We're sorry, but something went wrong.」と返されました。
8
+ docker環境下で作ったRailsアプリをherokuに以下のような命令でデプロイし、herokuを開くと「We're sorry, but something went wrong.」と返されました。
9
+ ```
10
+ $ git push heroku
11
+ $ heroku pg:reset DATABASE
12
+ $ heroku run rails db:migrate
13
+ $ heroku run rails db:seed
14
+ $ heroku restart
15
+ ```
9
16
 
10
17
  `heroku logs`で確認したところ、
11
18
 
@@ -17,15 +24,6 @@
17
24
 
18
25
 
19
26
 
20
- 以下の形でデプロイを行った結果、上記の結果になりました。
21
- ```
22
- $ git push heroku
23
- $ heroku pg:reset DATABASE
24
- $ heroku run rails db:migrate
25
- $ heroku run rails db:seed
26
- $ heroku restart
27
- ```
28
-
29
27
  ### 該当のソースコード
30
28
 
31
29
  ```ここに言語名を入力