Dockerでnginxを用いたプロキシサーバを作ろうとしています。
ルートのままでは嫌なので、www-dataユーザでこれを立ち上げようとするとエラーが出てしまいます。
調べてみると80番ポートを使うことが問題のようなので、8081ポートを使うようにしました。
nginxの設定ファイルは2つ用意していて、
./proxy/nginx.conf
./proxy/conf.d/default.conf
を使用しています。
このうち、listenは
./proxy/conf.d/default.confで指定しています。
しかし、実行してみると相変わらず
Error
12018/12/09 23:38:30 [emerg] 1#1: bind() to 0.0.0.0:80 failed (13: Permission denied) 2nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
と出てしまいます。。。
よい解決方法を教えていただきたいです。
よろしくお願いします。
現在の構築環境です。
dockercompose
1version: "3" 2 3services: 4 proxy: 5 build: ./proxy 6 container_name: my_proxy 7 volumes: 8 - ./proxy/conf.d:/etc/nginx/conf.d 9 - ./proxy/nginx.conf:/etc/nginx/nginx.conf 10 - ./proxy/html:/usr/share/nginx/html 11 links: 12 - nginx:nginx 13 ports: 14 - 80:8081 15 environment: 16 TZ: "Asia/Tokyo"
nginxconf
1# user nginx; 2worker_processes 1; 3 4error_log /var/log/nginx/error.log warn; 5pid /var/run/nginx.pid; 6 7events { 8 worker_connections 1024; 9} 10 11http { 12 13 include /etc/nginx/mime.types; 14 default_type application/octet-stream; 15 16 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 17 '$status $body_bytes_sent "$http_referer" ' 18 '"$http_user_agent" "$http_x_forwarded_for"'; 19 20 access_log /var/log/nginx/access.log main; 21 22 sendfile on; 23 #tcp_nopush on; 24 25 keepalive_timeout 65; 26 27 #gzip on; 28 29 include /etc/nginx/conf.d/*.conf; 30 31 proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=proxy:10m max_size=1g inactive=1d; 32 proxy_temp_path /var/cache/nginx/temp 1 2; 33 34 upstream myapp { 35 server nginx:8080; 36 } 37}
defaultconf
1server { 2 listen 8081; 3 charset utf-8; 4 server_name localhost; 5 6 location / { 7 8 proxy_pass http://myapp; 9 proxy_redirect default; 10 root /usr/share/nginx/html; 11 index index.html index.htm; 12 } 13 14 error_page 500 502 503 504 /50x.html; 15 location = /50x.html { 16 root /usr/share/nginx/html; 17 } 18}
Dockerfile
1FROM nginx 2 3# ディレクトリオーナーをwww-dataに変更 4RUN touch /var/run/nginx.pid && \ 5 chown -R www-data:www-data /var/run/nginx.pid && \ 6 chown -R www-data:www-data /var/cache/nginx 7 8USER www-data 9 10CMD ["nginx", "-g", "daemon off;","-c","/etc/nginx/nginx.conf"]
回答1件
あなたの回答
tips
プレビュー