回答編集履歴
1
プロセスの実行ユーザIDの問題として回答に追記
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
おそらく、docker-compose.yml の
|
2
2
|
```yml
|
3
3
|
volumes:
|
4
4
|
- api_socket:/run:z
|
@@ -11,4 +11,19 @@
|
|
11
11
|
ただし、そういう問題だと docker-compose 時にエラーになりそうです。/run は起動ごとに初期化されても問題ないディレクトリのはずなので、以下に変えてみてはどうでししょう。
|
12
12
|
```yml
|
13
13
|
tmpfs: /run
|
14
|
+
```
|
15
|
+
|
16
|
+
---------
|
17
|
+
2020/4/13 go.sock に直接パーミッション 777 と変更すれば、動作するということですので、全面的に回答を見直します。
|
18
|
+
|
19
|
+
nginx のワーカプロセスはコンテナ内でもユーザID nginx で動作します。したがって、/run/go.socket がgolang 側の root ユーザで作成されていると Permission denied のエラーになります。
|
20
|
+
Dockerfile で /etc/nginx/nginx.conf の user ディレクティブの値を以下のように変更(COPY で修正済みのものを配置か sed -i で編集)すれば回避できるのではないでしょうか?
|
21
|
+
|
22
|
+
修正前 /etc/nginx/nginx.conf:
|
23
|
+
```
|
24
|
+
user nginx;
|
25
|
+
```
|
26
|
+
修正後 /etc/nginx/nginx.conf:
|
27
|
+
```
|
28
|
+
user root;
|
14
29
|
```
|