dockerfile/ubuntu
に基づく画像nginx
を使用しています。 Dockerコンテナのシェルに接続するとき
docker exec -it <container_id> /bin/bash
git pull
を実行したいので、git
をインストールしようとしましたが、apt
はパッケージを見つけることができません。
root@a71e45d5cd40:/# apt-get install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package git
そのイメージからgit
をどのようにインストールできますか?なぜ見つからないのですか?
cat /etc/apt/sources.list
deb http://httpredir.debian.org/debian wheezy main
deb http://httpredir.debian.org/debian wheezy-updates main
deb http://security.debian.org wheezy/updates main
deb http://nginx.org/packages/mainline/debian/ wheezy nginx
cat /etc/apt/sources.list.d/*
cat: /etc/apt/sources.list.d/*: No such file or directory
apt-cache madison git
N: Unable to locate package git
これは、aptリポジトリがまだ更新されていないために発生しています。通常、ベースイメージが実行しているイメージを作成した後、aptリポジトリとtmpファイルをクリーンアップするのが一般的です。
これを修正するには、gitをインストールする前にapt-get update
を実行する必要があります。更新とインストールのコマンドを同時に組み合わせて、インストール行が変更された場合に更新のキャッシュを無効にすることをお勧めします。
RUN apt-get update && apt-get install -y git
-y
を使用すると、すべての質問に自動的にyesと答えるのに便利です。