web-dev-qa-db-ja.com

docker Ubuntuイメージ内にパッケージをインストールできない

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
437
ISanych

5月の ドキュメント より 2017年2018年 2019

同じRUNステートメント内で、RUN apt-get updateapt-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はそれ以上のコーディングや手動の介入なしに最新のパッケージバージョンを確実にインストールします。この手法は「キャッシュ無効化」として知られています。

85
creimers

Dockerfileに次のコマンドを追加します。

RUN apt-get update
11
Gourav Singla

Dockerfileに構文エラーがないことを確認してください。これもこのエラーの原因となる可能性があります。正しい例は次のとおりです。

RUN apt-get update \
    && apt-get -y install curl \
    another-package

これは構文エラーの修正とapt-get updateの追加の組み合わせで、私にとっては問題を解決しました。

2
Connor

あなたのUbuntuのパッケージリストを更新する必要があります。

$ Sudo apt-get update
$ Sudo apt-get install <package_name>
0
0xsr3k4nth

あなたはパッケージを持っていないか、それを含むレポを持っていないので、エラーが発生しています。

簡単な解決策あなたはapt-get updateをしてから試すべきです。

0
Nishant Dwivedi