Перейти к содержимому
Главная страница » Как создать и запустить Docker образ из Dockerfile на Github

Как создать и запустить Docker образ из Dockerfile на Github

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

docker build github.com/Balraj0017/Docker_CI

Если данный вариант не сработал пишите в наш 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

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

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

docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]

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

 docker container inspect [OPTIONS] CONTAINER [CONTAINER...]

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

Ссылки :-

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

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

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

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

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

docker run -p 3000:3000 -e github='https://github.com/pmcdowell-okta/dockertest.git' -it oktaadmin/dockertest

Затем подключитесь к 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, соберет и запустит приложение.

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

#Sample from https://github.com/pmcdowell-okta/Simple-node-webserver
setup:
   npm install http

build:
   echo "nothing to build, this Node, but thank you for thinking of me"

run:
   node index.js

dockertest:
   make setup
   make build
   make run

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

#Simple Makefile from https://github.com/pmcdowell-okta/hackey-golang-build

GOPATH=$(shell pwd)
SHELL := /bin/bash
PATH := bin:$(PATH)

setup:
   @GOPATH=$(GOPATH) go get "github.com/gorilla/mux"
   @GOPATH=$(GOPATH) go get "github.com/elazarl/go-bindata-assetfs"
   @GOPATH=$(GOPATH) go get github.com/jteeuwen/go-bindata/...
   @GOPATH=$(GOPATH) go get github.com/elazarl/go-bindata-assetfs/...
  
build:
   @GOPATH=$(GOPATH) go build ./...
   @GOPATH=$(GOPATH) go install ./...

run:
   bin/main


#This runs setup, build, and launches the application
dockertest:
   make setup
   make build
   make run

Если вы не знакомы с 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.:

FROM ubuntu
#You can start with any base Docker Image that works for you

RUN echo "#!/bin/bash\n" > /startscript.sh
RUN echo "mkdir github\n" >> /startscript.sh
RUN echo "cd github\n" >> /startscript.sh
RUN echo "git clone \$github\n" >> /startscript.sh
RUN echo "cd *\n" >> /startscript.sh
RUN echo "make dockertest\n" >> /startscript.sh

RUN chmod +x /startscript.sh

CMD /startscript.sh

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

docker build -t dockertest .

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

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

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

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *