base-image / dockerpull ubuntu
を介してdockerインスタンスをセットアップし、その上にnode.jsを正常にインストールします。
ただし、作業中のnode.jsアプリのリポジトリをプルしようとすると、npm install
アクションが発生し、そのアクションがrootとして実行されないことを想定しているため、問題が発生します。
docker run -name="{name}" -t -i {my custom docker container mirroring base-image) /bin/bash
rootとしてログインしました。docker
rootとして実行しない方法はありますか?
はい-コンテナのLinuxディストリビューションが期待するものに応じて、コンテナ内に他のユーザーアカウントを作成する必要があります(これはUbuntuの例です)。
ユーザーアカウントを設定したら、DockerfileUSER
パラメーターを使用して、Dockerfile内の残りのコマンドをそのユーザーとして実行できます。完全なユースケースについては、PostgreSQLの例を参照してください。
その例では、postgreユーザーはどこから来ましたか?Debianパッケージは、インストール時に必要なユーザーを作成します。独自のユーザーを作成したい場合は、に追加できRUN useradd
ますDockerfile
。完全な例については、このAtlassianブログのJiraDockerfileをご覧ください。
オペレーターとして、パラメーターdocker run
を使用して、その時点で使用するユーザーアカウントを決定することもでき-u
ます。これによりUSER
、Dockerfileで選択されたものが上書きされます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加