Требуется установить нашу программу в образ докера с пакетом, который есть только в нестабильной ветке 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
Дополнение: нельзя указывать пакет с @testing в одной строке со стабильными.
Дополнение 2: Докер останавливает сборку с ошибкой на строке
apk del --no-cache hdf5-dev@testing
apk del --no-cache -X testing hdf5-dev