Есть ли способ решить ошибку NOSPLIT в Docker?

Вопрос или проблема

Есть ли способ решить ошибку NOSPLIT в Docker?

Я хотел бы установить Debian с помощью Docker. Но хотя я смог запустить Docker ранее, мне не удалось запустить его сейчас. И когда я пытался скомпоновать свой Docker, выдает ошибку: ‘http://packages.sury.org/php buster InRelease подписанный файл недействителен, получено ‘NOSPLIT’ (требуется ли аутентификация сети?)’.. Можете предложить мне идею? У меня не так много опыта с Docker. Заранее спасибо..

FROM debian:buster-slim

WORKDIR /var/www/html/

ENV DEBIAN_FRONTEND noninteractive
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1

RUN apt-get update \
    && apt-get upgrade -y \
    && apt-get dist-upgrade -y \
    && apt-get -y install apt-transport-https wget gnupg2

RUN wget -q http://packages.sury.org/php/apt.gpg -O- | apt-key add -  
RUN echo "deb http://packages.sury.org/php/ buster main" | tee /etc/apt/sources.list.d/php.list 
RUN apt-get update

Ответ или решение

Решение ошибки NOSPLIT в Docker

Ошибка NOSPLIT, возникающая во время обновления пакетов в контейнере Docker, указывает на проблемную работу с сетью или доступ к ресурсам, которые требуют аутентификации. Вот несколько шагов для устранения данной ошибки при сборке контейнера на основе Debian Buster.

Пошаговое решение:

  1. Проверьте интернет-соединение:
    Убедитесь, что ваш хост имеет стабильное и активное интернет-соединение. Ошибка NOSPLIT часто возникает в средах с нестабильным или ограниченным доступом к интернету.

  2. Файлы sources.list:
    Проверьте содержимое вашего файла /etc/apt/sources.list в контейнере. Убедитесь, что репозитории правильно указаны. Например, добавление репозиториев PHP должно будет выглядеть так:

    RUN echo "deb http://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list

    Имейте в виду, что при добавлении http-ссылки, необходимо следить за правильным указанием версии дистрибутива.

  3. Обновление ключей GPG:
    Ключи GPG могут быть устаревшими или неверными. Попробуйте выполнить следующие команды перед обновлением:

    RUN wget -qO - http://packages.sury.org/php/apt.gpg | apt-key add -

    Убедитесь, что команда выполняется без ошибок.

  4. Проверка конфигурации сети:
    Попробуйте запустить Docker с флагом, который отключает использование DNS, если вы подозреваете, что это может быть причиной проблемы:

    docker run --dns 8.8.8.8 ...
  5. Кэширование и очистка:
    Убедитесь, что ваш Docker кэш обновлён, и попробуйте очистить предыдущие состояния сборки:

    docker builder prune
  6. Запуск с использованием --network host:
    Если ваша интеграция требует доступа к определённым ресурсам, попробуйте запустить контейнер с использованием сети хоста:

    docker build --network host -t my_image .

Пример полного Dockerfile

Ваш обновлённый Dockerfile может выглядеть следующим образом:

FROM debian:buster-slim

WORKDIR /var/www/html/

ENV DEBIAN_FRONTEND=noninteractive
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1

RUN apt-get update \
    && apt-get upgrade -y \
    && apt-get dist-upgrade -y \
    && apt-get -y install apt-transport-https wget gnupg2 \
    && wget -qO - http://packages.sury.org/php/apt.gpg | apt-key add - \
    && echo "deb http://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list \
    && apt-get update \
    && apt-get install -y php

Заключение

После выполнения указанных шагов ошибка NOSPLIT должна быть устранена. Если проблема сохраняется, обратитесь к системным администраторам или провайдеру связи для проверки возможных проблем с интернет-соединением.

Оцените материал
Добавить комментарий

Капча загружается...