ユーザーによる権限指定のミス
以下のように、apt-getでインストールをする際はroot権限でないとエラーになります。
> [29/36] RUN apt-get install -y unzip wget:
#0 24.00 E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
#0 24.00 E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
エラーメッセージには、/var/lib/dpkg/lock-frontend
ファイルを開く際の権限がないことが示されています。エラーの最後の部分、are you root?
は、このコマンドを root
ユーザーとして実行しているかどうかを問いかけています。
このエラーは、apt-get install
コマンドを非rootユーザーとして実行しようとしたときに発生します。apt-get
などのパッケージ管理コマンドは、通常、root
ユーザーの権限で実行する必要があります。
この問題を解決するには、以下の2つの方法が考えられます:
- Dockerfileの先頭で
USER root
を宣言する:
Dockerfileの先頭部分にUSER root
を追加することで、その後のコマンドがroot
ユーザーとして実行されるようになります。
USER root
RUN apt-get update && apt-get install -y unzip wget
- コマンドの前に
sudo
を使用する:
もしsudo
コマンドがイメージ内にインストールされている場合、sudo
を使用してコマンドを実行することで、root
権限でコマンドを実行することができます。ただし、これは一般的な方法ではなく、通常はUSER root
を使用する方が適切です。
上記のいずれかの方法で、Dockerfile内のコマンドを root
ユーザーとして実行することで、このエラーは解消されるはずです。