2017-02-01 8 views
0

では、これが唯一のnginxのは、サービス提供の基本的なセットアップを構築しようとminikubeドッキングウィンドウeval (minikube docker-env)オープン()ファイルが失敗した(13:パーミッション拒否)nginxの&ドッキングウィンドウ&minikube

を使用して、ホスト上で動作minikube 内部にドッキングウィンドウで発生します単一のファイル:

conf.d /あるexample.conf

server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 
    server_name localhost; 
    location /file.json { root /data/; } 
} 

データ/ file.json

{"a": 1} 

ドッキングウィンドウのnginxのイメージを使用して実行します。

docker run -it --rm -v "$(PWD)/conf.d:/etc/nginx/conf.d":ro -v "$(PWD)/data:/data":ro -p 8085:80 nginx 

curl http://localhost/file.jsonは私に2017/02/01 19:07:39 [error] 6#6: *1 open() "/data/file.json" failed (13: Permission denied)...

を与えるこの権利を作成する方法を見つけ出すことはできません...欲しかったヘルプ!

私がこれまで試したどのような:

  1. が正しく動作していないようchmod -R o+x /data && ls -la data && nginx -g "daemon off;" -rwxrwx--- 1 root 1013 11 Feb 1 13:08 /data/file.json chmodのようなカスタムコマンドを提供します。 chownコマンドでもない:( nginx

  2. chmod -R 777 data

    $ ls -la data drwxrwxrwx 3 antonk staff 102 Feb 1 17:08 data $ docker run -it --rm -v "$(PWD):/etc/nginx/conf.d":ro -v "$(PWD)/data:/data" -p 8085:80 nginx bash -c 'ls -la /data/ && nginx -g "daemon off;"' total 8 drwxrwx--- 1 root 1013 102 Feb 1 13:08 . drwxr-xr-x 1 root root 4096 Feb 1 20:20 .. -rwxrwx--- 1 root 1013 11 Feb 1 13:08 pub_key.json ホスト上の$ドッカバージョン クライアントへのドッキングウィンドウのユーザーを設定 $ docker run -it --rm -v "$(PWD):/etc/nginx/conf.d":ro -v "$(PWD)/data:/data" -p 8085:80 nginx bash -c 'chown -R nginx:nginx /data/ && ls -la /data/ && nginx -g daemon off;"' total 8 drwxrwx--- 1 root 1013 102 Feb 1 13:08 . drwxr-xr-x 1 root root 4096 Feb 1 19:50 .. -rwxrwx--- 1 root 1013 11 Feb 1 13:08 pub_key.json

  3. : バージョン:1.13.1-rc1の APIのバージョン: 1.23 Goバージョン:go1.7.4 Gitコミット:2527cfc Built:Sat Jan 28 00:43:00 2017 OS /アーチ:ダーウィン/ AMD64

    サーバー: バージョン:1.11.1 APIバージョン:1.23(最小バージョン) 囲碁バージョン:go1.5.4 Gitはコミット:5604cbe 内蔵:水曜日4月27日夜12時34を:20 2016 OS /アーチ:のLinux/AMD64 実験:偽

    minikubeバージョン:v0.15.0

https://github.com/kubernetes/minikube/issues/1067

+0

これは/ Usersフォルダの下で実行していますか?ホスト上でchmodを実行した後、ホストとコンテナの両方にディレクトリの長いリストを含めてください。 – BMitch

+0

はい、/ Users/... Macの場合 – melekes

+0

あなたが提供したすべての出力は、コンテナ内でコマンドを実行しています。 dockerコマンドを使用せずに、ホスト上でコマンドを実行した出力はどこにありますか? – BMitch

答えて

0

あなたが直接このようなボリュームのマウントを使用してコンテナにホストからディレクトリをマップする場合:

docker run -it --rm \ 
    -v "$(PWD)/conf.d:/etc/nginx/conf.d":ro -v "$(PWD)/data:/data":ro \ 
    -p 8085:80 nginx 

ファイルは、あなたのホスト上で持っているのUIDのとファイルのアクセス権と同じとに直接取り付けています。ホストのUID/GIDがコンテナ内で使用されているものと一致していない可能性があります。したがって、ファイルがあなたのホスト上で公に読めるものでなければ、それらはコンテナの中で読めることはありません。ホスト上で次のようにして対処することができます:

chmod o+rx data && chmod o+r data/file.json 
+0

ホストとドッカー側の両方で運がない 'docker run -it --rm -v" $(PWD):/ etc/nginx/conf.d ":ro -v" $(PWD)/データ:/ data "-p 8085:80 nginx bash -c 'chmod -R 777/data/&& ls -la /data/file.json && nginx -g" daemon off; "' -rwxrwx --- 1 root 1013 11 Feb 1 13:08/data/file.json' chmodが正しく動作しないようです – melekes

+0

実際にホストでコマンドを実行しましたか?ボリュームROをマウントしたので、コンテナ内でボリュームROを変更する方法はありません。 – BMitch

+0

通知 '-v" $(PWD)/ data:/ data "'私のコメントに 'ro'フラグはありません – melekes

関連する問題