Меня это так смущает, что я пытаюсь создать образ докера для m4b-tools и выполнил все инструкции. В середине процесса установки он решил, что не может разрешить github.com. Это после установки множества других пакетов. И когда я пытаюсь пропинговать от busybox, это работает нормально, в том же домене. Я зашел в Dockerfile, вытащил команды и отлично запустил их из командной строки. Таким образом, хост может разрешить проблему нормально, сам Docker может решить проблему нормально, и, по-видимому, в сборке нет ничего плохого, поскольку я не вижу такой же проблемы в Интернете.
Я не знаю, почему это становится проблемой в данный момент. Это не проблема с DNS на хосте или в Docker при попытке выполнить ping, только при использовании wget для создания этого образа.
Я пытаюсь запустить это в последней версии Ubuntu, которую я только что установил сегодня вместе с Docker, используя WSL2.
Вот вывод журнала, где он терпит неудачу:
#8 33.10 Подключение к github.com (github.com)|140.82.121.4|:443... подключено.
#8 33.16 HTTP-запрос отправлен, ожидание ответа... 302 Found
#8 33.42 Расположение: https://codeload.github.com/sandreas/mp4v2/zip/master [следующий]
#8 33.42 --2021-08-23 16:39:14-- https://codeload.github.com/sandreas/mp4v2/zip/master
#8 33.42 Разрешение codeload.github.com (codeload.github.com)... не удалось: попробуйте еще раз.
# 8 38.43 wget: невозможно разрешить адрес хоста «codeload.github.com»
------
А вот и Dockerfile:
###############################
#
# Образ сборки m4b-tool
# псевдоним m4b-tool='docker run -it --rm -u $(id -u):$(id -g) -v "$(pwd)":/mnt m4b-tool'
# псевдоним m4b-tool='docker run -it --entrypoint=m4b-tool-pre --rm -u $(id -u):$(id -g) -v "$(pwd)":/mnt m4b -инструмент'
###############################
ИЗ alpine:3.14 как строитель
АРГ FDK_AAC_VERSION=2.0.1
ARG FDK_AAC_URL="https://github.com/mstorsjo/fdk-aac/archive/v$FDK_AAC_VERSION.tar.gz"
ARG FDK_AAC_SHA256=a4142815d8d52d0e798212a5adea54ecf42bcd4eec8092b37a8cb615ace91dc6
RUN echo "---- УСТАНОВИТЬ ЗАВИСИМОСТЬ СБОРКИ ----" \
&& apk add --no-cache --update --upgrade --virtual=зависимости сборки \
автоконф \
библиотека \
автосборка \
буст-разработчик \
база сборки \
gcc \
гит \
смола \
wget \
&& echo "---- СОСТАВИТЬ SANDREAS MP4V2 (для сортировки-заголовка, сортировки-альбома и сортировки-автора) ----" \
&& компакт-диск /tmp/ \
&& wget https://github.com/sandreas/mp4v2/archive/master.zip \
&& распаковать master.zip \
&& компакт-диск mp4v2-мастер \
&& ./настроить && \
сделать -j4 && \
сделать установку && сделать distclean \
&& echo "---- ПОДГОТОВИТЬ FDKAAC-ЗАВИСИМОСТИ ----" \
&& компакт-диск /tmp/ \
&& wget -O fdk-aac.tar.gz "$FDK_AAC_URL" \
&& tar xfz fdk-aac.tar.gz \
&& cd fdk-aac-* && ./autogen.sh && ./configure --enable-static --disable-shared && make -j$(nproc) install \
&& echo "---- COMPILE FDKAAC ENCODER (исполняемый двоичный файл для использования --audio-profile) ----" \
&& компакт-диск /tmp/ \
&& wget https://github.com/nu774/fdkaac/archive/1.0.0.tar.gz \
&& смола xzf 1.0.0.tar.gz \
&& cd fdkaac-1.0.0 \
&& autoreconf -i && ./configure --enable-static --disable-shared && make -j4 && make install && rm -rf /tmp/* \
&& echo "---- УДАЛИТЬ ЗАВИСИМОСТЬ СБОРКИ (чтобы сохранить изображение маленьким) ----" \
&& apk del --purge build-dependencies && rm -rf /tmp/*
###############################
#
# Образ разработки m4b-tool
#
###############################
ИЗ альпийского: 3.14
РАБОЧИЙ КАТАЛОГ ENV /mnt/
ENV M4BTOOL_TMP_DIR /tmp/m4b-tool/
RUN echo "---- УСТАНОВИТЬ ПАКЕТЫ ИСПОЛНЕНИЯ ----" && \
apk добавить --no-cache --update --upgrade \
# mp4v2: необходимые библиотеки
libstdС++ \
# m4b-tool: php cli, необходимые расширения и настройки php
php7-кли \
php7-дом \
php7-json \
php7-xml \
php7-mbstring \
php7-фар \
php7-токенизатор \
php7-xmlwriter \
php7-openssl \
&& эхо "date.timezone = UTC" >> /etc/php7/php.ini
# копируем статический ffmpeg с помощью libfdk из образа докера mwader
КОПИРОВАТЬ --from=mwader/static-ffmpeg:4.4.0 /ffmpeg /usr/local/bin/
# скопировать скомпилированные двоичные файлы mp4v2, библиотеки и кодировщик fdkaac в образ среды выполнения
КОПИРОВАТЬ --from=builder /usr/local/bin/mp4* /usr/local/bin/fdkaac /usr/local/bin/
КОПИРОВАТЬ --from=builder /usr/local/lib/libmp4v2* /usr/local/lib/
ARG M4B_TOOL_DOWNLOAD_LINK="https://github.com/sandreas/m4b-tool/releases/latest/download/m4b-tool.tar.gz"
# обходной путь для копирования локального файла m4b-tool.phar, ЕСЛИ он существует
ДОБАВИТЬ ./Dockerfile ./dist/m4b-tool.phar* /tmp/
RUN echo "---- INSTALL M4B-TOOL ----" \
&& если [ ! -f /tmp/m4b-tool.phar]; тогда \
wget "${M4B_TOOL_DOWNLOAD_LINK}" -O /tmp/m4b-tool.tar.gz && \
если [ ! -f /tmp/m4b-tool.phar]; тогда \
tar xzf /tmp/m4b-tool.tar.gz -C /tmp/ && rm /tmp/m4b-tool.tar.gz ;\
фи \
фи \
&& mv /tmp/m4b-tool.phar /usr/local/bin/m4b-tool \
&& M4B_TOOL_PRE_RELEASE_LINK=$(wget -q -O - https://github.com/sandreas/m4b-tool/releases/tag/latest | grep -o 'M4B_TOOL_DOWNLOAD_LINK=[^ ]*' | head -1 | cut -d '=' -f 2) \
&& wget "${M4B_TOOL_PRE_RELEASE_LINK}" -O /tmp/m4b-tool.tar.gz \
&& tar xzf /tmp/m4b-tool.tar.gz -C /tmp/ && rm /tmp/m4b-tool.tar.gz \
&& mv /tmp/m4b-tool.phar /usr/local/bin/m4b-tool-pre \
&& chmod +x /usr/local/bin/m4b-tool /usr/local/bin/m4b-tool-pre
РАБОЧИЙ КАТАЛОГ ${РАБОЧИЙ КАТАЛОГ}
CMD ["список"]
ТОЧКА ВХОДА ["m4b-инструмент