apt-get install apt-transport-https не работает в Docker - PullRequest
0 голосов
/ 05 июня 2019

У меня есть контейнер Docker, основанный на FROM jenkins/jenkins:2.179 изображении.Я RUN несколько команд для установки ядра dotnet:

FROM jenkins/jenkins:2.179

RUN apt-get update && \
    apt-get -y install sudo  && \
    sudo apt-get install apt-transport-https

Как только он достигает sudo apt-get install apt-transport-https, он терпит неудачу и жалуется, что:

W: Failed to fetch http://deb.debian.org/debian/dists/stretch/InRelease  Could not connect to prod.debian.map.fastly.net:80 (151.101.112.204). - connect (111: Connection refused) Could not connect to deb.debian.org:80 (5.153.231.4). - connect (111: Connection refused) [IP: 5.153.231.4 80]
W: Failed to fetch http://security.debian.org/debian-security/dists/stretch/updates/InRelease  Could not connect to prod.debian.map.fastly.net:80 (151.101.112.204). - connect (111: Connection refused) Could not connect to security.debian.org:80 (217.196.149.233). - connect (111: Connection refused) [IP: 217.196.149.233 80]
W: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/InRelease  Unable to connect to deb.debian.org:http: [IP: 5.153.231.4 80]
W: Some index files failed to download. They have been ignored, or old ones used instead.

Есть идеи, почему это происходит?

1 Ответ

1 голос
/ 05 июня 2019

Я не могу воспроизвести это, поэтому, возможно, что-то не так с интернет-соединением контейнера (возможно, проблемы с прокси-сервером, как предложил Марк), или источники в настоящее время не были доступны, когда вы пытались создать образ.

По другому вопросу - когда я пытался воспроизвести это с вашим точным кодом, я столкнулся с ошибкой:

E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)

Поскольку вы также, вероятно, столкнетесь с этим в конце концов, вы не должны использовать sudo в вашем Dockerfile.Попробуйте что-то вроде этого:

FROM jenkins/jenkins:2.179

USER root
RUN \
    whoami \ # This will print "root"...
    && apt-get update \
    && apt-get install -y --no-install-recommends \
        apt-transport-https

USER jenkins
RUN whoami # ... and this will print "jenkins"
...