2015-12-08 4 views
1

У меня есть файл Docker, который работает, но если я добавлю какие-либо новые зависимости в команду apt-get install, это не сработает. Например, это работает:Ошибка установки Docker Debian

FROM debian:stable 

RUN apt-get update 

RUN apt-get install -y \ 
    python \ 
    ... 
    apache2 

Но если я попробовать это, он не:

FROM debian:stable 

RUN apt-get update 

RUN apt-get install -y \ 
    python \ 
    ... 
    apache2 
    python-mysqldb 

я могу заменить python-mysqldb с чем-нибудь еще, git-core, к примеру, и он будет по-прежнему не с той же сообщение об ошибке:

Unable to correct missing packages. 
E: Failed to fetch http://security.debian.org/pool/updates/main/l/linux/linux-libc-dev_3.16.7-ckt11-1+deb8u5_amd64.deb 404 Not Found [IP: 149.20.20.6 80] 

E: Aborting install. 

Любые мысли о том, почему добавление новой зависимости вызывает сбой и как его исправить?

ответ

3

Я обнаружил, что вам необходимо присоединиться к обновлению команды установки & в тот же блок RUN.

например:

RUN apt-get update \ 
&& apt-get install -y \ 
    python \ 
    ... 
    apache2 \ 
    python-mysqldb 

Согласно this post, описывающее проблему

По умолчанию кэш Docker свои команды, чтобы сократить время, затрачиваемое строительство изображения. Если не было никаких изменений перед такими командами (или на той же строке).

Между тем, я замечаю, что AWS examples отделяют их, как и у вас есть. Поэтому я не знаю, работает ли он там. Возможно, они отключили кеш по умолчанию.

Смежные вопросы