Dockerを用いてproxyサーバを立ち上げようとしています。
rootのまま作業するのは良くないと書き込みを見て、ユーザを作成してそれで運営していこうと考えたのですが、非rootでの構築の仕方が分からず困っています。
80番ポートは一般ユーザでは使えないとのことも知って、対応してみたつもりですがうまくいきませんでした。
アドバイスよろしくお願いします。
▼エラー内容
2018/12/09 23:38:30 [emerg] 1#1: bind() to 0.0.0.0:80 failed (13: Permission denied) nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
8081ポートを使うようとして、以下のような感じで構成しています。
nginxの設定ファイルは2つ用意していて、
./proxy/nginx.conf
./proxy/conf.d/default.conf
を使用しています。
このうち、listenは
./proxy/conf.d/default.confで指定しています。
▼docker-compose
version: "3" services: proxy: build: ./proxy container_name: my_proxy volumes: - ./proxy/conf.d:/etc/nginx/conf.d - ./proxy/nginx.conf:/etc/nginx/nginx.conf - ./proxy/html:/usr/share/nginx/html links: - nginx:nginx ports: - 80:8081 environment: TZ: "Asia/Tokyo"
▼nginx.conf
# user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=proxy:10m max_size=1g inactive=1d; proxy_temp_path /var/cache/nginx/temp 1 2; upstream myapp { server nginx:8080; } }
▼default.conf
server { listen 8081; charset utf-8; server_name localhost; location / { proxy_pass http://myapp; proxy_redirect default; root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
▼Dockerfile
FROM nginx # ディレクトリオーナーをwww-dataに変更 RUN touch /var/run/nginx.pid && \ chown -R www-data:www-data /var/run/nginx.pid && \ chown -R www-data:www-data /var/cache/nginx USER www-data CMD ["nginx", "-g", "daemon off;","-c","/etc/nginx/nginx.conf"]
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー