Задать вопрос

Полная сборка docker-образов без интернета, как?

Есть необходимость иметь возможность в любой момент собирать свои Docker-образы без интернета или когда по каким-то причинам нужные серверы с зависимостями недоступны или не работают.

На данный момент хочется иметь универсальное решение для всех видов зависимостей, в частности:
  • Сами базовые Docker-образы: ubuntu, postgres, php, composer, node, nginx
  • APT-пакеты из разных источников: ubuntu, debian, apt-archive.postgresql.org
  • NPM-пакеты
  • PHP Composer-пакеты
  • PECL-модули
  • Некоторые утилиты, которые устанавливаются через wget/curl

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

Уточню, что лучшим вариантом было бы именно кэширование необходимого, а не выкачивание всего репозитория с зависимостями, как это делают такие утилиты как apt-mirror.

Есть варианты?
  • Вопрос задан
  • 300 просмотров
Подписаться 5 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Stepik
    Docker + Ansible - с нуля, деплой и управление Swarm
    1 неделя
    Далее
  • Учебный центр IBS
    ADM-019 Основы Docker
    1 неделя
    Далее
  • Слёрм
    Docker для админов и разработчиков
    4 недели
    Далее
Пригласить эксперта
Ответы на вопрос 2
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Просто запустите свой кэширующий реестр: https://goharbor.io/ и используйте его как реестр при сборке образов. Отличнейшее решение — из коробки работает со всеми нужными реестрами, есть многопользовательская поддержка, журналы, адекватный WebUI, проекты — т.е. можно собрать образ, залить в реестр и на своих серверах сразу указывать зависимость от своего реестра для получения образов и плюс ещё несколько полезных и удобных фич. Для apt, npm и прочего ищите аналогичные решения: для большинства популярных репозиториев пакетов должны быть, для остальных — поискать интеграции для существующих решений. А вот для приложений не в репозитории — для каждого своё решение/скрипт.
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Если вы не знаете полностью набор зависимостей - то вы не можете закэшировать их заранее. Для всего остального есть Nexus.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы