安装包时Docker容器连接超时

kqqjbcuj  于 2023-04-20  发布在  Docker
关注(0)|答案(1)|浏览(248)

我在安装一些软件包时遇到了一些问题。
命令是:

RUN apt-get update && apt-get install -yqq --fix-missing && apt-get install -yqq --no-install-recommends libkrb5-dev && apt-get clean && rm -rf /var/lib/apt/lists/*

错误是:
E:无法获取http://deb.debian.org/debian/pool/main/k/krb5/libkadm5clnt-mit12_1.18.3-6%2bdeb11u1_amd64.deb 502连接超时[IP:146.75.62.132
E:无法获取一些存档,也许可以运行apt-get update或尝试使用--fix-missing?
错误:无法生成服务“webserver”:命令'/bin/sh -c apt-get update && apt-get install -yqq --fix-missing && apt-get install -yqq --no-install-recommends libkrb 5-dev && apt-get clean && rm -rf /var/lib/apt/lists/*'返回非零代码:100
连接工作正常,我能够安装其他软件包。今天早上我也能够正确构建相同的映像,但突然它开始给予我那个错误。总是使用相同的软件包。
昨天我在安装其他软件包时也遇到了同样的问题,但我通过将安装拆分到不同的行来解决它们。
我经常遇到这个问题,我100%确定这不是连接问题。如果我在同一个软件包上添加更多的软件包,它总是失败。
我试着从另一个容器ping IP,它工作了。我也试着打开下载文件的链接,一切正常。
我总是使用--no-cache选项来构建它。
这是完整的Dockerfile

FROM php:7.4-apache-bullseye as php

# PhpUnit 8 (Version 9 doesn' support php 7.2)
# Install phpunit, the tool that we will use for testing
RUN curl --location --output /usr/local/bin/phpunit "https://phar.phpunit.de/phpunit-9.phar" && chmod +x /usr/local/bin/phpunit

WORKDIR /var/www/html

ENV DEBIAN_FRONTEND noninteractive
ENV TZ=UTC

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN apt-get update && apt-get install -yqq --no-install-recommends zip && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -yqq --fix-missing && apt-get install -yqq --no-install-recommends sqlite3 && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -yqq --fix-missing && apt-get install -yqq --no-install-recommends libpng-dev libcurl4-openssl-dev libxml2-dev && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -yqq --fix-missing && apt-get install -yqq --fix-missing --no-install-recommends libc-client-dev && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -yqq --fix-missing && apt-get install -yqq --fix-missing --no-install-recommends libldap2-dev && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -yqq --fix-missing && apt-get install -yqq --no-install-recommends libcap2-bin && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -yqq --fix-missing && apt-get install -yqq --no-install-recommends libldb-dev && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -yqq --fix-missing && apt-get install -yqq --no-install-recommends memcached libmemcached-dev && apt-get clean && rm -rf /var/lib/apt/lists/*

RUN apt-get update && apt-get install -y zlib1g-dev && apt-get clean && rm -rf /var/lib/apt/lists/*

RUN docker-php-ext-configure mysql && docker-php-ext-install mysql  \
    && docker-php-ext-configure gd && docker-php-ext-install gd  \
    && docker-php-ext-configure curl && docker-php-ext-install curl  \
    && docker-php-ext-configure imap --with-kerberos --with-imap-ssl && docker-php-ext-install imap  \
    && docker-php-ext-configure xml && docker-php-ext-install xml  \
    && docker-php-ext-configure soap && docker-php-ext-install soap  \
    && docker-php-ext-configure bcmath && docker-php-ext-install bcmath  \
    && docker-php-ext-configure intl && docker-php-ext-install intl \
    && docker-php-ext-configure ldap && docker-php-ext-install ldap

RUN pecl install igbinary && docker-php-ext-enable igbinary
RUN pecl install -o -f redis && docker-php-ext-enable redis
RUN pecl install -o -f msgpack && docker-php-ext-enable msgpack
RUN pecl install -o -f memcached && docker-php-ext-enable memcached
RUN pecl install -o -f pcov && docker-php-ext-enable pcov
RUN pecl install -o -f xdebug && docker-php-ext-enable xdebug

先谢谢你的帮助

cbeh67ev

cbeh67ev1#

当我试图在docker上安装texlive时,也遇到了同样的超时错误,为了避免这个问题,我修改了apt配置(docs),如下所示:

RUN echo '\
Acquire::Retries "100";\
Acquire::https::Timeout "240";\
Acquire::http::Timeout "240";\
APT::Get::Assume-Yes "true";\
APT::Install-Recommends "false";\
APT::Install-Suggests "false";\
Debug::Acquire::https "true";\
' > /etc/apt/apt.conf.d/99custom

有点晚了,但我希望能有帮助;)

相关问题