Использование Dockerfile для создания собственного образа для тестирования на Concourse CI

Из-за некоторых требований к запуску тестов в какой-то конкретной тестовой среде мы хотим создать собственный контейнер для запуска теста на Concourse CI.

Нам известен рабочий процесс, который

Concourse --> Build Image --> Push to Artifactory/Docker Hub --> Pull into pipeline --> run container --> run the tests

Но у нас нет необходимости отправлять изображение в Hub, и мы предпочли бы такой рабочий процесс.

Concourse -- Build Image -- run container -- run the tests

Я просмотрел блог Pivotal, проблема, но в нем объясняется первый рабочий процесс.

Можем ли мы достичь 2-го рабочего процесса?


person Harshil    schedule 28.02.2017    source источник


Ответы (1)


Вы можете добиться желаемого с помощью параметра image при определении задачи.

Параметр image здесь ожидает rootfs и не образа докера, так что это то, что вам нужно будет предоставить.

Я понимаю, что это может показаться раздражающим и противоречащим интуиции, но это вписывается в абстракцию собрания. Образы Docker - это ресурсы, и поэтому их, как и все другие ресурсы собрания, необходимо хранить и управлять версиями в каком-либо хранилище за пределами собрания. Concourse загрузит новое изображение только в том случае, если обнаружит, что было загружено более новое, поэтому я бы сказал, что правильный рабочий процесс немного отличается.

Я бы сделал задание, которое подает все необходимое в docker-image-resource put и запускается при изменении одного из этих ресурсов. Затем в задаче, в которой вам нужен образ, извлеките из своего хранилища докеров. Concourse будет кэшировать изображение до тех пор, пока оно не изменится, поэтому большую часть времени вам не нужно будет использовать сетевой трафик.

В качестве примера вы можете увидеть, как это делает команда Concourse ... У нас есть конвейер, который создает образы, используя ресурс docker-image-resource, а затем наш основной конвейер использует эти изображения и большую часть времени использует кешированную версию.

person Josh Zarrabi    schedule 28.02.2017
comment
привет, спасибо за усилия. Я ищу более удобную конфигурацию, в которой я могу просто предоставить файл Docker в качестве источника вместо источника репозитория - person Harshil; 06.03.2017