私はこのパターンに従いDockerfileている:私はこのファイルを編集するために私の画像を設定することはできませんなぜ動作しない部分が...の/etc/nsswitch.confをドッカー画像に保護されたテキストファイルを変更するドッカーファイルを作成するにはどうすればよいですか?
RUN echo "[DOCKER BUILD] Installing image dependencies..." && \
apt-get update -y && \
apt-get install -y sudo package_names ...
RUN useradd -ms /bin/bash builder
# tried this too, same error
# RUN useradd -m builder && echo "builder:builder" | chpasswd && adduser builder sudo
RUN mkdir -p /home/builder && chown -R builder:builder /home/builder
USER builder
RUN sudo sed -i '/hosts:/c\hosts: files dns' /etc/nsswitch.conf
を編集していますか?
私はuseraddのいくつかの異なる方法を微調整しようとしましたが、現在の誤差がある:
ステップ8/10:の/ etc/nsswitchのRUNのsudoは-i ':/ C \ホストファイル、DNS /ホストのをセッド.conf ---> 97cd39584950で実行 sudo:ttyが存在せず、askpassプログラムが指定されていない '/ bin/sh -c sudo sed -i'/hosts:/ c \ hosts:files dns '/ etc/nsswitch.conf 'がゼロ以外のコードを返しました:1
イメージの内部でこのファイルを編集するにはどうすればよいですか?
コメントhereは、ドッカーファイル内のすべての操作をrootとして実行する必要があることを示唆しています。これはsudoが必要ないと信じさせています。なぜ私はこれを見ますか?
RUN sed -i '/hosts:/c\hosts: files dns' /etc/nsswitch.conf
ステップ8/10:RUNのsed -i '/ホスト:/ C \ホスト:ファイルのDNS' の/etc/nsswitch.conf ---> sedのad56ca17944c での実行:一時開くことができませんでしたファイル/ etc/sed8KGQzP:許可が拒否されました
私はちょうど今週のDockerを使い始めましたので、塩分を補充していましたが、ドッカーの中のデフォルトのユーザーは "root"なので、ユーザーを別のものに変更するまでは(例えば、 'USER builder 'あなたはrootですので、ユーザーを変更する前にルート権限が必要な操作を実行してください。 –