DockerにUbuntu 14.04イメージをインストールしました。その後、ubuntuイメージ内にパッケージをインストールしようとすると、パッケージエラーを見つけることができなくなります。
apt-get install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package curl
このエラーを修正するには?
これは、イメージにパッケージキャッシュがないためです。実行する必要があります。
apt-get update
パッケージをインストールする前に、そしてあなたのコマンドがDockerfileにあるなら、あなたはそれから必要になるでしょう:
apt-get -y install curl
コマンドからの標準出力を抑制するためには-qq
を使います。例えば。
apt-get -qq -y install curl
5月の ドキュメント より 2017年2018年 2019
同じ
RUN
ステートメント内で、RUN apt-get update
とapt-get install
を常に組み合わせる
RUN apt-get update && apt-get install -y package-bar
(...)
RUN
ステートメントでapt-get update
を単独で使用すると、キャッシュの問題が発生し、後続のapt-get install
命令は失敗します。(...)
RUN apt-get update && apt-get install -y
を使用すると、Dockerfileはそれ以上のコーディングや手動の介入なしに最新のパッケージバージョンを確実にインストールします。この手法は「キャッシュ無効化」として知られています。
Dockerfileに次のコマンドを追加します。
RUN apt-get update
Dockerfileに構文エラーがないことを確認してください。これもこのエラーの原因となる可能性があります。正しい例は次のとおりです。
RUN apt-get update \
&& apt-get -y install curl \
another-package
これは構文エラーの修正とapt-get update
の追加の組み合わせで、私にとっては問題を解決しました。
あなたのUbuntuのパッケージリストを更新する必要があります。
$ Sudo apt-get update
$ Sudo apt-get install <package_name>
あなたはパッケージを持っていないか、それを含むレポを持っていないので、エラーが発生しています。
簡単な解決策あなたはapt-get updateをしてから試すべきです。