-
Notifications
You must be signed in to change notification settings - Fork 186
Реализация сборки Docker образов для GOST Engine #487
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
в github actions хотите добавить (можно в принципе на базе makefile, заодно и его будем тестировать) ? или я могу нарисовать. и вопрос, наверное, на будущее, публиковать ли образ где-нибудь в ghcr или docker hub |
|
касаемо "Собирать отдельно openssl внутри этих образов считаю не целесообразным, это совсем другая задача." - обычно это делают через multi stage build, когда в конечный образ включаются только результирующие библиотеки но все подобные улучшения оставим на совесть тех, кого текущий вариант не устраивает )) пусть делают пул реквесты |
Actions добавить - идея правильная! И в docker hub публиковать тоже считаю нужно и полезно, а иначе зачем всё это? :) |
Тут вопрос не в том КАК собирать, а в том, с какой целью это делать. Какую задачу этим хочется решить! Я имею в виду, в данном, конкретном проекте. Может сбоку openssl в docker оставить ребятам из openssl? Ну хорошо, есть очевидная проблема: в каком-то дистрибутиве версия openssl ниже 3.4, и сборка проекта и главной ветки уже не пройдёт. Я так обломался, когда хотел в это PR ещё rockylinux добавить. Но там в latest образе openssl 3.2... я просто плюнул на него. Может позже гляну на другие оси. Ну допустим, мы хотим эту проблему решить, тогда нужна карта соответствий версий. Наверное, в проекте что-то такое есть и можно на это заложиться (точно? А если мы из тега будет собирать, это же как-то нужно программно сделать, надо думать). Ну хорошо, следующий вопрос - openssl Хотим ставить в обособленных папках (/opt/openssl, /usr/local, etc) или обновлять системный? Я за то чтобы, ставить сбоку. И не потому что так проще, а потому что в противном случае В общем, я думаю, что под всех мы не подстроимся и нужно задачу сразу упростить. Тут исходники engine, их мы и собираем, все третье-стороние зависимости - это уже кем-то собранные и проверенные бинари. А то ещё сидеть и разбираться, поему openssl в alpine не собрался из night build комита. Пардон, что длинно и занудно. |
|
А зачем собирать через Docker? gost engine dso скорее всего должен быть собран совместимым с конкретными библиотеками openssl из системы, иначе возможна разница в abi, которая может проявиться не сразу. Для тестирования или как пример сборки это да. Кстати, cmake поддерживает cpack - сборку пакетов. Сам я этим не поьзовался. ps. Зачем столько COPY, как я понимаю, каждый COPY создает слой - лишние сущности. |
Ну во-первых это красиво! :) Причин можно много найти, у каждого будут свои соображения, я думаю это не важно. А если посмотреть по issues в проекте, то таких собирателей образов как я, половина пользователей бибилотеки. И каждый раз люди изобретают какие-то свои способы и борятся с одними и теми же проблемами. Собственно, и я с одной из таких пришел в ищью, где уважаемый @chipitsine и предложил PR уже офромить.
Есть и продуктивные задачи, где openssl+gost+curl нужные в докере, в кубере и пр...
Мне кажется мы в одном направлении мыслим, только у вас выразить мысль получилось более лаконично.
пупупу... тоже не пользовался, но как бы да, есть разные способы готовки образов без docker buildx, когда-то я пробовал сборку java приложения через Google JIB, интересно, но есть свои особенности. В общем, я бы не стал на них закладываться, по причине малой популярности.
В целом - да, Слоёв в итоге там совсем не много, мне кажется что довольно компактно получилось:
|

Этот PR добавляет поддержку Docker для простой сборки и распространения GOST Engine.
Что добавлено:
Дополнительные комментарии: