Контейнер службы действий Github из файла Dockerfile в том же репо - PullRequest
0 голосов
/ 06 мая 2020

Я изучаю действия Github и разрабатываю рабочий процесс с заданием, для которого требуется контейнер службы .

В документации указано, что в конфигурации должно быть указано: «Образ Docker для использования в качестве контейнера службы для запуска действия. Значение может быть Docker именем базового образа или publi c docker Хаб или реестр ". Во всех примерах в документации используются общедоступные образы Docker, однако я хочу создать контейнер службы из файла Docker, содержащегося в моем репо.

Можно ли использовать локальный файл Docker для создания службы Контейнер?

Поскольку задание зависит от контейнера службы, этот образ должен существовать, когда задание начинается, и, следовательно, образ не может быть создан на более раннем этапе того же задания. Образ можно построить в отдельном задании, но поскольку задания выполняются в отдельных исполнителях, я считаю, что задание 2 не будет иметь доступа к изображению, созданному в задании 1. Если это правда, то могу ли я следовать этому подходу, используя upload / download-artifact, чтобы передать изображение задания 1 в задание 2?

Если ничего не помогает, я мог бы попросить задание 1 создать изображение и загрузить его в Docker Hub, а затем загрузить его в задание 2 с Docker хаба, но наверняка есть способ получше.

Ответы [ 2 ]

1 голос
/ 09 мая 2020

Вы можете создать изображение docker с Dockerfile или docker-compose.yml, находящимся внутри репо. Обратитесь к этому publi c gist , это может быть полезно.

Вместо создания нескольких docker -изображений вы можете использовать docker-compose. Docker -compose - предпочтительный способ справиться с подобным сценарием.

1 голос
/ 07 мая 2020

Хост-компьютер GitHub Actions (runner) - это полностью загруженный Linux компьютер, на котором уже установлено все необходимое.

Вы можете легко запускать несколько контейнеров - либо ваши собственные изображения, либо publi c images - просто запустив команды docker и docker -compose.

Мой вам совет: опишите свои услуги в файле docker-compose.yml и на одном из шагов GitHub Actions, просто сделайте docker-compose up -d.

...