Во-первых, тривиально, вам нужно apt-get update
, чтобы получить индексные файлы из репозиториев, которые вы добавили до того, как apt
найдет там какие-либо пакеты.
RUN add-apt-repository blah blah
RUN apt-get update -y # Add this
RUN apt-get install -y whatever
Но у вас также есть недопустимые репозиториив разделе add-apt-repository
.Вывод lsb_release -sc
представляет собой кодовое имя Debian, такое как stretch
, для которого, конечно, в репозитории Canonical Partner нет раздела;и репозиторий NGninx поддерживает только Debian squeeze
(хотя я ожидаю, что пакеты будут работать и на более новых версиях Debian).
Наконец, вам необходимо управлять ключами этих репозиториевили иным образом пометить их как безопасные.В качестве небольшого бонуса я попытался немного сократить ваши apt-get
загрузки.Попробуйте этот Dockerfile:
FROM debian:latest
RUN apt-get -y update
RUN apt-get install -yq gnupg2 \
software-properties-common curl # lsb-release
# XXX FIXME: the use of [trusted=yes] is really quick and dirty
RUN add-apt-repository "deb [trusted=yes] http://archive.canonical.com/ bionic partner"
RUN add-apt-repository "deb [trusted=yes] http://nginx.org/packages/debian squeeze nginx"
RUN apt-get update -y
RUN apt-get install -y nginx
RUN rm -rf /var/lib/apt/lists/
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
EXPOSE 80
CMD ["/usr/sbin/nginx"]