質問編集履歴
1
記述捕捉
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
|
-
|
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
|
```
|