Самый простой способ build docker image from github

Если данный вариант не сработал пишите в наш Telegram чат.

Еще один вариант инструкции.

GitHub + DockerHub

В этом мы напишем файл dockerfile, который присутствует на github, и с его помощью создадим образ docker. Образ Docker создается в вашем репозитории Dockerhub. Можно сказать , что мы настраиваем автоматические сборки, аналогично GitOPS.

GitOps — это операционная платформа, рекомендованная различными стандартами соответствия для внедрения инфраструктуры и общих методологий разработки.

Github

Github — это особая система контроля версий с открытым исходным кодом, созданная линусом торвальдсом в 2005 году. Это распределенная система контроля версий, которая означает, что вся история базы кода доступна на компьютере каждого разработчика. Это позволяет легко разветвлять и объединять. Для получения дополнительной информации вы также можете перейти на официальный сайт doc .

Docker

Это программная платформа для создания приложений на основе контейнеров. Docker container может работать где угодно — локально или в облаке. Контейнеры в docker легкие, с большей эффективностью использования ресурсов. Это повышает производительность разработчика, поскольку контейнеры в docker работают быстрее, чем виртуальная машина. Подробнее вы можете узнать на официальном Документация .

Предварительные требования

  • Знание как git, так и docker
  • Учетная запись на github и dockerhub
  • Учетная запись Dockerhub должна быть профессиональной, командной или бизнес -подписки .

Напишите код на github

На первом шаге мы создадим репозиторий с любым именем. Затем напишите код или, можно сказать, напишите dockerfile и разместите его на github.

В это репозиторий нам также нужно добавить файл the index.html и в нем записать любое сообщение, которое мы хотим распечатать как веб-страницу nginx. На этом наша работа с github завершена. Теперь приступайте к работе с dockerhub .

Создайте репозиторий на dockerhub

Сначала мы должны создать репозиторий на dockerhub. После этого мы должны открыть это репозиторий и нажать на раздел сборки, как показано на рисунке.

Для этого у вашей учетной записи должна быть подписка pro, team или business. Когда вы нажимаете на раздел сборки, появляются 2 варианта: ссылка на github и ссылка на bitbucket. 

Выберите любой вариант, в котором присутствует ваш файл dockerfile. После подключения к вашему репозиторию git выполните шаг, указанный на изображении ниже.

Я отключил автоматическое тестирование. Если мы включим этот тест, он автоматически внесет изменения в образ, когда вы что-либо нажмете в репозитории github. Нажмите «Сохранить» и «Создать» . Создание образа займет некоторое время. Когда ваша сборка будет успешной, вы увидите, что действие по сборке выполнено успешно (указано ниже).

Теперь мы создадим образ docker на вашем сервере с помощью команд docker

Вы увидите , что ваше изображение извлечено , а затем запустите контейнер с этим изображением .

Теперь узнайте IP-адрес этого контейнера с помощью команды

В последнем случае просто выполните curl с этим IP-адресом, и мы получим результат, который мы определили в этом файле. index.html файл в репозитории github. Мы также можем сказать , что это настроило автоматическую сборку в docker .

Ссылки :-

  • Для сборки автоматизации вы также можете перейти по ссылке official doc .
  • У меня есть этот файл dockerfile на моем компьютере github .

Источник
Дополнительные материалы:

Еще один вариант развертки Docker из Git

Запустите Docker, чтобы опробовать его

Ниже приведен работающий пример этого, это простой веб-сервер Node “Hello World”, работающий на порту 3000. Просто запустите эту команду.:

Затем подключитесь к http://localhost:3000. Вы должны увидеть веб-страницу с изображением Hello World.

Как Docker работает с GitHub

Вы запустили образ Docker с переменной окружения, указывающей репозиторий Git, из которого клонируется исходный код. (Переключатель -e указывает URL репозитория GitHub.) В приведенном мной примере используется репозиторий GitHub, на котором создается веб-сервер, написанный с помощью Node.js. Этот пример очень прост, но вы получите представление о том, как это работает.

Вот схема, на случай, если вам больше подходит визуальное обучение:

Шаги для достижения нирваны в Docker + GitHub

  1. Запустите Docker Image – Запускает Docker с переменной окружения в репозитории GitHub
  2. Тянуть Образ Docker автоматически клонирует репозиторий GitHub
  3. Настройка – Удаляет все зависимости
  4. Сборки – Создает полный проект
  5. Выполнить – Запускает проект

Для этого вам понадобятся только Makefile и образ Docker. Давайте узнаем больше о каждом из них.:

Makefile

Это пример Makefile, который я использую, Makefile очень прост, вы, безусловно, можете сделать это по-своему. Makefile удалит все необходимые пакеты или зависимости, затем он клонирует репозиторий GitHub, соберет и запустит приложение.

Вот пример узла, который я использовал:

А вот пример в Go:

Если вы не знакомы с Makefiles, Makefile — это то, что разработчики используют, чтобы помочь другим разработчикам компилировать и запускать свои проекты. Если вы хотите узнать больше о makefiles, возможно, стоит взглянуть на это руководство по использованию Makefile Руководство по Makefile на Youtube. Просто имейте в виду, что изображение Docker запускает правило под названием dockertest, в котором есть три правила установки, сборки и запуска. Эти правила будут выполняться по порядку.

Makefile (ы) чувствительны и требуют табуляции, поэтому, если ваш Makefile не работает, просто дважды проверьте и убедитесь, что вы не используете пробелы. Makefile также используют специальный синтаксис, называемый YAML.

Вы также можете протестировать свой код и выполнить сборку локально, прежде чем передавать его на GitHub, выполнив:

make dockertest

Если это работает в вашей среде, и вы добавили все зависимости в Makefile, это должно работать и для образа Docker.

Добавьте файл Dockerfile

Для файла Dockerfile я стараюсь сделать его как можно более компактным. Обычно я начинаю с базового образа Ubuntu. Я добавляю необходимые языки, такие как Go или Node.

Особый соус — это несколько команд, которые я помещаю в Dockerfile, который запускает Makefile из репозитория GitHub. Вот как выглядит один из моих Dockerfile.:

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

docker build -t dockertest .

В этом руководстве я буду использовать свое изображение, но если вы уже опытный пользователь Docker, смело используйте свое собственное. Просто помните, что вам нужно добавить в свой образ Docker все, что требуется для компиляции и разрешения зависимостей.

Добавьте переменную окружения в Docker

Особенностью этого простого решения является передача переменной окружения в интерфейс командной строки Docker, которая предоставляет URL-адрес, по которому образ Docker будет удален из репозитория GitHub. Я решил вызвать переменную окружения github.

Для этого примера мне также нужно было разрешить порт 3000 для доступа к гостевому образу Docker:

Супер простое тестирование GitHub с помощью Docker – почему?

Что мне действительно нравится в этом подходе, так это то, что кому-то легко попробовать ваш код. Ниже приведен скриншот из одного из моих репозиториев GitHub, где я включаю команду для тестирования моего кода непосредственно из описания в файле readme.md .

Мне понравилось документировать этот метод, надеюсь, другие найдут его полезным!

Источник