2017-10-16 13 views
2

Webアプリケーション用のdocker-composeでドッカー画像を作成しようとしています。私のWebアプリケーションは、ファイルシステムにファイルを書き込むためのアクセス許可が必要です。root以外のユーザーのDocker-composeボリュームの作成

私Dockerfileは、私がドッキングウィンドウコンテナに/codeに私の現在の.ディレクトリをマウントしたい

# some other stuff 
RUN addgroup -S web && adduser -S -g web web 
USER web 

が含まれています。

私はdocker-compose build & & docker-compose upを実行すると、コンテナ内の私の/codeディレクトリは、ユーザのために「1000:1000」を所有していることを発生し、ない私はDockerfileで作成した私のユーザー。

version: '2'                  

services:                       
    admin:                   
    build:                  
     context: .                 
     dockerfile: Dockerfile              
    command: python manage.py 0.0.0.0 8030       
    volumes:                  
    - .:/code                  
    ports:                  
    - 9000:8030                 
    stdin_open: true                
    tty: true                             
volumes:                   
    .:                    
    driver_opts:                 
     o: uid=100,gid=65533 

ご覧のとおり、driver_optsにuser uidとgidパラメータを渡そうとしました。それは助けにはならなかった。

私のディレクトリ:.から/codeへのマウントは、ユーザwebのドッキング・コンテナ権限でどうすればいいですか?

OS:Ubuntuの16.04

ドッキングウィンドウのバージョン17.09.0-CE

ドッキングウィンドウ・コンバージョン1.8.0

答えて

1

あなたがして試すことができます:

RUN addgroup -g 1000 web && \ adduser -G web -g web -s /bin/sh -D web

ユーザーマウントされたディレクトリに書き込むことができます。

+0

はい、ほとんどこれです。これを解決するには、ユーザーuidとgidを明示的に設定してください: 'RUN addgroup -S web -g 1000 && adduser -u 1000 -G web -D web'。それは私の問題を解決する権限を書いて解決しました。しかし、なぜ私のボリュームが常に '1000:1000'によって所有されてマウントされているのかはまだ分かりません。どうすれば変更できますか –

関連する問題