2017-08-07 7 views
1

root以外のユーザーがsudoersグループに追加された状態でイメージビルド中にフォルダを作成できません。ここに私のDockerfileです:ディレクトリを作成できません。ドッカーコンテナ内でのアクセスが拒否されました

FROM ubuntu:16.04 

RUN apt-get update && \ 
    apt-get -y install sudo 

RUN adduser --disabled-password --gecos '' newuser \ 
    && adduser newuser sudo \ 
    && echo '%sudo ALL=(ALL:ALL) ALL' >> /etc/sudoers 

USER newuser 

RUN mkdir -p /newfolder 
WORKDIR /newfolder 

私はエラーを取得する:ちょうどドッカーコンテナ外filesytemsようドッカーコンテナ作業内部mkdir: cannot create directory '/newfolder': Permission denied

答えて

4

ファイルシステム:ファイルまたはディレクトリを作成しようとしている場合は、適切な権限が必要です。この場合、ルート以外のユーザとして/newfolderを作成しようとしています(USERディレクティブは、それに続くコマンドの実行に使用されるUIDを変更するためです)。 /rootが所有し、モードはdr-xr-xr-xであるため、これは機能しません。

ではなく、試してみてください。

RUN mkdir -p /newfolder 
RUN chown newuser /newfolder 
USER newuser 
WORKDIR /newfolder 

は、これはそれをrootなどのディレクトリを作成し、chownます。

+0

助けました。ありがとうございました。しかし、私はコンテナに行く:ドッカーexec -it img/bin/bash mkdir newfolder2私は許可が拒否され、 'sudo'コマンドが必要です。 'sudo'なしでコンテナ内でコマンドを実行することは可能ですか? –

+0

'USER'ディレクティブを使用したので、コンテナ内でコマンドを実行するときに' root'ではありません。あなたが 'root'になりたい場合は、' sudo'や 'su'のような特権昇格ツールが必要です。そうでない場合は、' USER'ディレクティブを使わないようにコンテナを再設計し、代わりに 'ENTRYPOINT'スクリプトそれはあなたの 'CMD'を実行するときに' sudo'または* drop *権限と同様のものを使用します。 – larsks

関連する問題