LINUX.ORG.RU

Как собирать образ с нестабильным пакетом?

 ,


0

1

Требуется установить нашу программу в образ докера с пакетом, который есть только в нестабильной ветке Edge. Для определённости — HDF5. Образ будет ежедневно пересобираться по мере написания нашей программы. Как лучше собирать?

1. Во FROM прописать минимальный докер-образ на Edge, и всё ставить оттуда? Как у него со стабильностью?

2. Один раз собрать образ на Edge без нашей программы, записать его в наш собственный докер-репозиторий, тщательно протестировать, при каждой пересборке брать оттуда?

3. Собрать пакет HDF5 в стабильном Alpine, поднять свой репозиторий Alpine и каждый раз ставить из него? Как сделать репозиторий под Убунту, где уже стоит SSH?

Каковы плюсы и минусы каждого варианта?

Пока изучаю документацию к 3.

Предварительный результат: надо собирать пакеты самому, в testing слишком старые.

Дополнение: пакеты обновили.

Ответ: Можно совмещать пакеты из main и edge. В /etc/apk/repositories раскомментировать строки и добавить теги, чтобы получилось что-то вроде:

#/media/cdrom/apks
http://mirror.yandex.ru/mirrors/alpine/v3.8/main
http://mirror.yandex.ru/mirrors/alpine/v3.8/community
@edge http://mirror.yandex.ru/mirrors/alpine/edge/main
@community http://mirror.yandex.ru/mirrors/alpine/edge/community
@testing http://mirror.yandex.ru/mirrors/alpine/edge/testing
После этого по имени пакета: «apk add uwsgi» — будет искать в main и community, а по имени с тегом: «apk add hdf5@testing» — в конкретном хранилище.

Дополнение: нельзя указывать пакет с @testing в одной строке со стабильными.

Дополнение 2: Докер останавливает сборку с ошибкой на строке

apk del --no-cache hdf5-dev@testing
но нормально обрабатывает
apk del --no-cache -X testing hdf5-dev
При запуске в работающем образе Докера работают обе.

★★★

Последнее исправление: olegd (всего исправлений: 6)
Ответ на: комментарий от dada

docker-compose

Да, образы запускаются через него. Вопрос о том, как эти образы лучше делать.

olegd ★★★
() автор топика
Последнее исправление: olegd (всего исправлений: 1)

По умолчанию community и нестабильные ветки заблокированы, но их можно раскомментировать в /etc/apk/repositories: https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management#Repository_...

В примере стабильные main и community доступны по умолчанию, а для edge, edge community и testing нужно добавлять к имени пакета @edge, @edgecommunity или @testing.

Новая проблема — тот же HDF5 оказался позапрошлогодним, версии 1.8.20, несмотря на то, что в @testing. А формат с тех пор менялся, и нужен хотя бы 1.10. Значит, только собирать самому.

olegd ★★★
() автор топика
Последнее исправление: olegd (всего исправлений: 1)
Ответ на: комментарий от olegd

Natanael Copa решил, что пора обновить пакет и пересобрать всё, что от него зависит. Спасибо ему.

olegd ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.