Как стать автором
Обновить

Комментарии 35

Хм, а можно всего лишь установить старую версию Mozill'ы, скажем, Palemoon (которая сама по себе неожиданно не обновится), и всё заработает из коробки и без докеров. На Windows — точно запустится, у нас до сих пор используется кое-где ;)

Что-то я не в курсе того, чтобы мозила распространялась с включенным в неё проприетарным плагином, который к тому же adobe запрещала распространять в составе других продуктов. Может быть, у вас на Windows flash plugin был отдельно установлен, а установленная старая версия мозилы просто цепляла его и всё?

Именно так, браузер - отдельно, плагин - отдельно. Флэш ведь не знает, что он устарел. К чему сложности?

Флэш, начиная с какой-то версии, знает, что он устарел, проверяя время на компьютере - об этом отдельно в статье сказано, если вы дочитали до конца. Где взять старую версию флэша, которая не проверяет текущее время - это большой вопрос, так как Adobe удалил со своего сайта вообще все версии флэша.

Я и на Linux недавно себе похожее делал - старая FF ( вроде 54) и плагин для flash.

Статья ведь не про то, что у вас на компьютере по счастливой случайности оказались установленными старый браузер и где-то давно добытый и установленный плагин флэша. Статья про то, как это запустить, если нет ни того, ни другого.

Старый браузер скачивается элементарно даже с официального сайта Palemoon, старый флэш чуть менее доступен, но дистрибутивов в сети тоже хватает.

Зашибись! Сделайте теперь это в контейнере. Или вы предлагаете своим читателям запускать старый дырявый браузер со старым дырявым флэшем, скаченным хрен знает откуда, прямо на хосте? )

Ха, для задачи, описанной в посте, - разово открыть флэш с видео, - не нужно никакой безопасности.

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

Это давно не совсем так, потому что

Official Debian and Ubuntu images automatically run apt-get clean, so explicit invocation is not required.

Это делали для нашего контейнера, на котором мы базируемся. А вот в нашем контейнере кэши уже есть, так что будет хорошо их почистить

https://github.com/moby/moby/blob/03e2923e42446dbb830c654d0eec323a0b4ef02a/contrib/mkimage/debootstrap#L82-L105

Нет, это добавляется в Post-Invoke хуки, т.е. вызывается автоматически после выполнения apt-get в Dockerfile, который вы сами пишете.

Здесь написано про то, что после того, как имидж забустраплен, из кэша удаляется вся эта бадяга. Но мы в этом тьюториале создаем свой имидж на базе официально. После выполнения команды apt-get update, вся эта лабуда для работы пакетного менеджера, будет загружена из репозитория вновь и если вы не удалите её, то она так и останется в слое.

Читайте мой комментарий выше. На настоящий момент, официальные образы настаивают APT внутри контейнера таким образом, что он подчистит следы работы в Dockerfile.

Если не верите мне, можете сами собрать два образа - в одном после apt update удалить кеши, а в другом нет. Разницы в размерах между ними практически не будет

Если не верите мне, можете сами собрать два образа - в одном после apt update удалить кеши, а в другом нет. Разницы в размерах между ними практически не будет

Хм.... отличная идея для проверки тезиса, генацвале! Только у вас как с верой в бога - утверждаете его наличие вы, а доказать его отсутствие должен кто-то другой. Но что ж, в этот раз мне не трудно. Взял докерфайл из этого проекта и удалил всё, что ниже первой директивы RUN. Вот что получилось в конце.

flash-image.2                                                       latest                  0e14fe71ead7   4 seconds ago   633MB

flash-image.1                                                       latest                  502f5cd937e0   39 hours ago    586MB


Разница почти 50 Мб, собственно в основном здесь:

du -scb /var/lib/apt/          
45697253        /var/lib/apt/

Стало быть метаинформация по репозиторию не удаляется. А вот *.deb файлов действительно в кэше нет, иначе было бы ещё около 130 Мб. Таким образом, rm -rf /var/lib/apt/lists/* имеет смысл делать, а apt-get clean - нет

rm -rf ... /var/cache/*

А вот это не слишком ли смело? Там всё-таки лежат данные не только APT.

Ну лежат и лежат, какая разница? В контейнере все равно кроме вашего процесса ничего не должно запускаться, и соответственно нечему генерить кеши

А что там ещё может лежать на этапе построения образа контейнера?

Я бы всё же попробовал ruffle для начала, прежде чем с некробраузерами развлекаться, хоть в докере, хоть без оного.

Эта штука для проигрывания условно игр на флеше. То есть когда у вас есть самодостаточный swf файл, который вы в неё загружаете и играете. С видеопроигрывателями на флеше это так не работает - для проигрывателя нужен видеопоток, который вы собираетесь собственно смотреть. Так что вы написали про первое, что нагуглили, совершенно не врубаясь в то, что вы нашли и как это применимо к задаче, сформулированной в первом абзаце.

Я его не нагуглил, я его давно использую. Причём в виде расширения к Firefox, которое запускает (ну, скажем так, пытается запустить) Flash-контент прямо на веб-страницах, без скачивания swf-файлов.

А вот, кстати, если оно не сработает (что бывает), но конкретный flash-контент мне позарез нужен, - тогда буду выдёргивать swf и как-то пытаться его запустить на виртуальной машине, не имеющей подключения к интернету, ибо выпускать в инет устаревшую на N лет версию браузера - я не настолько... хм, скажем мягко, безрассуден :)

тогда буду выдёргивать swf и как-то пытаться его запустить на виртуальной машине

Я же написал, что swf-проигрыватель не самодостаточная сущность. Где вы возьмете сам контент?

 не имеющей подключения к интернету

Удачи вам в просмотре видеоплеера без контента )

выпускать в инет устаревшую на N лет версию браузера - я не настолько... хм, скажем мягко, безрассуден :)

А как вы думаете, для чего автор статьи запускает браузер в Docker-контейнере?

Ещё раз, ruffle работает как расширение в браузере и в некоторых случаях, даже если swf тянет поток откуда-то, он справится. И это самый предпочтительный сценарий, без старых дырявых браузеров и прочих костылей.

Если же он не справляется - тут уже смотрим по ситуации. Контейнер безопасности, конечно, добавляет, но он не панацея ни разу. Я бы лучше одноразовую виртуалку завёл, если уж припрёт, с полным сбросом к исходному состоянию после остановки. А если прямо в оптовых количествах где-то нужные flash-видео лежат, которые ruffle не берёт, - можно копнуть причину поглубже и issue им на github'е открыть.

Ещё раз, ruffle работает как расширение в браузере и в некоторых случаях, даже если swf тянет поток откуда-то, он справится. И это самый предпочтительный сценарий, без старых дырявых браузеров и прочих костылей.

Так не работает ваш ruffle в качестве расширения в браузере. Вы б хоть по ссылке из поста сходили б что ли, проверили бы прежде чем каменты строчить-то.

Контейнер безопасности, конечно, добавляет, но он не панацея ни разу. 

Ну допустим, автор флэш-а мог быть злобным какером и найти какую-то дырку, не закрытую в последней версии флэша, разместить его и ждать, пока клюнет. Но если он сделал комбо-эксплоит, который будет работать на ядрах и контейнерной обвязке в начале 2024-го, то моё почтение этому дону! )

В какой-то момент должна была быть и 88-ая, но не нашел где её добыть - если читатель подскажет, буду безмерно благодарен

Открываем репу и смотрим доступные версии https://mirror.yandex.ru/ubuntu/pool/universe/c/chromium-browser/

Вон есть 85.0.4183.83 из ближайших к 89

Только на размер посмотрите .deb файлов - они необычайно маленькие. А всё потому, что в какой-то момент, убунту решила отказаться от распространения нативных билдов хромиума в пользу snap store. То есть грубо говоря, то, что вы написал, это виртуальный пакет, который пустой внутри себя, но по зависимостям вытягивает уже snap-пакет. Готовы рассказать, как установить flash-плагин внутрь snap-а?

Точно, не обратил внимания. А полноценная только 90, да.

Немного непонятно тогда зачем их держать в репе - snap отдельной жизнью живет и все равно обновит до последней версии.

С дебианом тоже чуток не повезло, самая старая как раз 89 )

А всё потому, что в какой-то момент, убунту решила отказаться от распространения нативных билдов хромиума в пользу snap store

А следом и firefox с thunderbird. И переодически что то ломается - то шрифты, то курсоры, то уведомления.

Thunderbird сейчас вообще сломан на бете 24.04 - нельзя отправить письмо (вернее даже сохранить черновик). Что то с профилями apparmor накосячили судя по всему.

Готовы рассказать, как установить flash-плагин внутрь snap-а?

Вообще думаю можно, но сама идея запускать snap в контейнере не то что попахивает, а пованивает )

Немного непонятно тогда зачем их держать в репе - snap отдельной жизнью живет и все равно обновит до последней версии.

Ну вот стоял у вас пакет chromium-browser, а потом вы apt-get upgrade и нужно каким-то образом заменить этот пакет на chromium-snap. Для этого делают пустой пакет, его установка удаляет все файлы старого пакета, а в зависимостях ему прописывают новый пакет - таким образом, вытягивается другая сборка. А юзер типа не замечает - что был у него хромиум до, что остался после, только более новый.

Это понятно, непонятно зачем пакет с 85й версией. Ну держали бы один transitional пакет последней версии.

А какая разница какой он версии? Главное, чтобы эта версия была выше, чем версия у пакета с нативной сборкой. Тогда эта версия обновится и вытащит по зависимостям самую последнюю версию snap-сборки.

Все, я понял (опять не внимательность) - 112 версия тоже полноценная.

Получается огрызок для snap там один и он 85й версии.

Тогда не понятно почему apt upgrade не обновляет до 112й

Added: Ясно понятно, там отдельная версия которая все перебивает. Тогда остается вопрос зачем огрызок 85й оставили )

$ apt show chromium-browser

Package: chromium-browser
Version: 2:1snap1-0ubuntu1

И, казалось бы, можно запускать Сhromium, но, сделав так, упрёмся в первую неприятность: плагин будет проверять текущее время и, если оно перевалило за какое-то там января 2021-го года, то он откажется работать.

Зачем обманывать? Проще поставить последнюю версию без тайм-бомбы 32.0.0.371:

https://web.archive.org/web/*/http://fpdownload.adobe.com/get/flashplayer/pdc/32.0.0.371/*
https://web.archive.org/web/20200530062840if_/https://fpdownload.adobe.com/get/flashplayer/pdc/32.0.0.371/flash_player_npapi_linux.x86_64.tar.gz
https://web.archive.org/web/20200524080541if_/https://fpdownload.adobe.com/get/flashplayer/pdc/32.0.0.371/flash_player_ppapi_linux.x86_64.tar.gz

В какой-то момент должна была быть и 88-ая, но не нашел где её добыть - если читатель подскажет, буду безмерно благодарен.

Flash Support Removed from Chromium (Target: Chrome 88+ - Jan 2021)
https://www.chromium.org/flash-roadmap/
Поставить бинарный snapshot легко:
https://chromiumdash.appspot.com/branches (chromium 88 - Branch Pos. 827102)
https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Linux_x64/827102/

Зачем обманывать?

Где это тут вас кто-то обманывает? На указанной в посте версии поведение именно такое.

Проще поставить последнюю версию без тайм-бомбы 32.0.0.371:

Замечательно, спасибо за инфу, но я лично не знал, в какой момент заложили таймбомбу.

Под "Зачем обманывать?" имелось в виду не то, что Вы обманываете, а установка faketime.

Аааа, пардон.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории