Я создаю много приложений, которые я хочу использовать на удаленных серверах в контейнерах докеров. Представьте, что я создал проект foo, и я написал Dockerfile для него. Я создаю это изображение на своем локальном хосте и запускаю его в контейнере. Все работает нормально, я хочу запустить контейнер с тем же изображением на удаленной машине. Теперь я имею следующие способы:Push-изображение против здания на самой системе, докер
- я могу опубликовать его на dockerhub, но изображение не мало, я не хочу ждать каждый раз, когда изображение меняется (я сделал некоторые исправления). Так что это не очень хороший вариант для меня.
- Я могу создать частный сервер на локальной сети , где находятся мои серверы производства. Этот способ намного лучше, , потому что скорость соединения высока, и это мое независимое репо. Но очень сложно настроить частный репозиторий для докеров из-за https. Вам также нужно добавить - insecure для каждого демона. Вы должны использовать docker-клиент, построить свою собственную систему, пометить ее, логин и нажать. Слишком много шагов ...
- Я нашел другой способ. Я архивирую мое приложение с dockerfile в tar.gz, загружаю его на удаленный сервер (nexus 3, raw repository), а затем настраиваем Jenkins для загрузки этого архива и запускаем команду сборки docker. Это также не очень удобно, мне приходится каждый раз создавать задания для каждого изображения, задания равны, а URL-адреса и имена разные. Я также запускаю контейнер с дженкинсами, это правильно или я использую что-то вроде куберне?
Вы можете поделиться своими впечатлениями о том, как вы решаете проблемы, подобные описанным выше? Я делаю это правильно или это плохая практика?