Я лазил по Интернету в поисках видео событий, произошедших 15 лет назад, и нашел что-то похожее на то, что искал, но посмотреть не смог — требовался Adobe Flash. Погуглил как открыть это видео, но рабочих вариантов не нашел. «Ладно, — подумал я, — вызов принят». А у нас с читателем есть дополнительная возможность попрактиковаться в создании Docker-контейнеров.

Отказ от ответственности: Использование устаревших версий браузера и самого плагина Flash представляет собой потенциальную угрозу безопасности. Используйте этот метод на свой страх и риск.

Итак, начнем с того, что поддержка Flash плагинов была удалена в Chromium начиная с 89 версии. То есть нам нужно что-то, что имеет более старую версию. Это что-то — это Ubuntu 18.04 — это 65 версия, без обновлений, но с обновлениями это 112 версия. В какой-то момент должна была быть одна 88-я, но я не придумал, где ее найти — если читатель может мне подсказать, Буду крайне благодарен. Итак, начнем: создаем Dockerfile.

FROM ubuntu:18.04

ARG DEBIAN_FRONTEND=noninteractive
ARG CHROMIUM_VERSION=65.0.3325.181-0ubuntu1

RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y \
    chromium-browser=$CHROMIUM_VERSION \
    chromium-browser-l10n=$CHROMIUM_VERSION \
    chromium-codecs-ffmpeg-extra=$CHROMIUM_VERSION \
    apt-get clean && rm -rf /var/lib/apt/lists/* /var/cache/*

За основу берем официальный образ ubuntu:18.04. Получаем список пакетов, устанавливаем обновления и устанавливаем сам браузер, явно указывая версию — иначе будет установлен самый последний (на момент написания статьи) 112.

Последняя (12-я) строка удаляет из этого «слоя» загруженные deb-файлы и кэши, необходимые команде apt. Это хорошая практика при работе с контейнерами.

Мы запустим его от имени пользователя, иначе Chromium начнет жаловаться. Создадим его, но без пароля:

RUN adduser --gecos "user" --disabled-password --shell /bin/bash user

Скачаем актуальный архив с последней версией Flash-плагина для Chromium, случайно сохраненный в Интернет-архиве:

ADD  /tmp

Хочу обратить ваше внимание на полезное свойство директивы ADD, о котором многие забывают: добавлять файлы можно не только из локального контекста Docker, но и с произвольного URL.

ЧИТАТЬ   Европа предупреждает о риске распада Бельгии

Далее давайте посмотрим на некоторые действия и настройки ранее существовавшего пакета Pepperflashplugin-nonfree:

COPY etc /etc

RUN mkdir -p /usr/lib/pepperflashplugin-nonfree && \
    tar -xz -f /tmp/flash_player_ppapi_linux.x86_64.tar.gz -C /usr/lib/pepperflashplugin-nonfree libpepflashplayer.so manifest.json && \
	chown root:root /usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so && \
	chmod 644 /usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so && \
	chown root:root /usr/lib/pepperflashplugin-nonfree/manifest.json && \
	chmod 644 /usr/lib/pepperflashplugin-nonfree/manifest.json

Установите DISPLAY для X-сервера

ENV DISPLAY=:0

И вроде бы запустить Chromium можно, но после этого мы сталкиваемся с первой проблемой: плагин проверит текущее время и, если в январе 2021 года прошло какое-то время, откажется работать. Поэтому со временем вам придется его обмануть; для этого вам необходимо включить пакет в список пакетов, установленных с Chromium. faketime. При запуске Chromium под faketime мы столкнёмся с ещё одной проблемой: SSL-сертификаты не будут проверены, поскольку все они будут выданы в будущем (для нашего faketime). Поэтому вам нужно будет игнорировать ошибки сертификата, используя настройки браузера. --ignore-certificate-errors. В результате мы получаем следующую точку входа в контейнер

CMD ["/usr/bin/faketime", "2020-12-24 08:15:42", "/usr/bin/chromium-browser", "--ignore-certificate-errors"]

Мы собираем образ Docker, например, с помощью следующей команды:

docker build -t flash-image  .

И мы начинаем это дело со следующей команды:

docker run -it --rm --user user:user -v /tmp/.X11-unix/:/tmp/.X11-unix  --cap-add SYS_ADMIN flash-image

А вот страница, рассказывающая о суровой повседневной жизни России, где вы можете с ней ознакомиться: https://www.zaks.ru/new/archive/view/68760

Все это вы можете получить в готовом виде в репозитории.

Source

От admin