質問編集履歴

1

記述捕捉

2023/04/13 17:34

投稿

gomes_2222
gomes_2222

スコア90

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,9 @@
2
2
  Rails + NginxのアプリをAWS Fargateでデプロイしたいです。
3
3
 
4
4
  ### 前提
5
+ AWSFargateを使用。
6
+ タスク定義(サービス)は1つで、その中にnginxコンテナとrailsコンテナ(puma)の2つを含んでいます。
5
- デプロイ自体は成功し、AWS上のコンテナも動いている。
7
+ サービス起動したところ、デプロイ自体は成功し、AWS上のコンテナも動いている。
6
8
  しかし、いざアプリをパブリックIPでみようとしたら、nginxの502 Bad Gatewayの
7
9
  エラーが出ました。
8
10
 
@@ -12,7 +14,49 @@
12
14
  connect() to unix:///myapp/tmp/sockets/puma.sock failed (2: No such file or directory) while connecting to upstream
13
15
  ```
14
16
 
17
+ さらにAWS上に存在するコンテナの中をECS Execを使って覗きました。
15
- さらにコンテナ見てみるとnginxどころか、railsコンテナ方にもpuma.sockが作られていことがわりました。
18
+ 下記通り、ディレクトリまでは存在確認しましたが肝心のpuma.sockがあるべきところになかです
19
+ ```nginxコンテナ
20
+ #以下コマンドでnginxコンテナ内に入る。
21
+ % aws ecs execute-command \
22
+ --cluster xxxx \
23
+ --task xxxxx \
24
+ --container nginx \
25
+ --interactive \
26
+ --command "bash"
27
+
28
+ #lsコマンドでファイル一覧を表示。myappディレクトリ確認
29
+ % ls
30
+ ・・・ myapp ・・・
31
+
32
+ #socketsディレクトリへ移動
33
+ % cd myapp/tmp/sockets
34
+
35
+ #lsコマンドでファイル一覧を表示。何も表示されなかった。
36
+ sockets % ls
37
+ sockets %
38
+ ```
39
+
40
+ ```railsコンテナ
41
+ #以下コマンドでrailsコンテナ内に入る。
42
+ % aws ecs execute-command \
43
+ --cluster xxxx \
44
+ --task xxxxx \
45
+ --container rails \
46
+ --interactive \
47
+ --command "bash"
48
+
49
+ #lsコマンドでファイル一覧を表示。tmpディレクトリ確認
50
+ myapp % ls
51
+ ・・・ tmp ・・・
52
+
53
+ #socketsディレクトリへ移動
54
+ myapp% cd tmp/sockets
55
+
56
+ #lsコマンドでファイル一覧を表示。何も表示されなかった。
57
+ tmp/sockets % ls
58
+ tmp/sockets %
59
+ ```
16
60
 
17
61
  ### 該当のソースコード
18
62
 
@@ -100,15 +144,25 @@
100
144
  }
101
145
  ```
102
146
 
147
+ なお、バインドマウントについて。
148
+ railsのdockerFileの下部にVOLUMEで指定をしている、
149
+ またECSのタスク定義で、nginxのコンテナには以下の設定してます。
150
+ ```
151
+ "volumesFrom": [
152
+ {
153
+ "sourceContainer": "rails"
154
+ }
155
+ ],
156
+ ```
157
+
103
158
  ### 試したこと
104
159
  何回かDockerFile末尾のコマンドを作り替えつつ、動かしてますが今のところ進歩なしです。
105
160
  なぜpuma.sockが作られないんでしょうか。
106
161
  もしかして、ECSのタスク定義やサービスの設定側の問題の可能性はありますか?
162
+ 今のところ、railsのdockerfileのコマンドのミスもしくはpuma.rbの記述ミスで、puma.sock作られないのかと考えてます。
107
163
 
108
164
  ちなみに、ローカルでは下記docker-compose.ymlを使って正常に動作してます。
109
- コマンドの違いかなと思いましたが、ちがう?ようでして・・
110
-
111
- ```ここに言語を入力
165
+ ```
112
166
  services:
113
167
 
114
168
  app:
@@ -123,4 +177,14 @@
123
177
  depends_on:
124
178
  - db
125
179
 
180
+ web:
181
+ build: nginx
182
+ volumes:
183
+ - public-data:/myapp/public
184
+ - tmp-data:/myapp/tmp
185
+ ports:
186
+ - "80:80"
187
+ depends_on:
188
+ - app
189
+
126
190
  ```