Контейнер службы действий Github из файла Dockerfile в том же репо

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

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

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

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

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

2 ответа

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

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

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

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

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

Другие вопросы по тегам