2017-02-28 1 views
3

En raison de certaines exigences pour exécuter les tests dans un environnement de test spécifique, nous souhaitons créer un conteneur personnalisé pour exécuter le test sur Concourse CI.Utilisation de Dockerfile pour créer une image personnalisée pour les tests sur Concourse CI

Nous sommes au courant d'un flux de travail qui est

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

Mais nous n'avons pas besoin de pousser l'image à Hub et préférerions un flux de travail comme celui-ci

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

J'ai vérifié sur Pivotal's blog, issue mais cela explique le premier flux de travail. Pouvons-nous atteindre le 2ème flux de travail?

Répondre

1

Vous pouvez réaliser ce que vous voulez en utilisant l'option image lors de la définition de votre tâche.

L'option image ici attend un rootfs et pas une image docker si c'est ce que vous devez fournir. Je comprends que cela peut sembler ennuyeux et contre-intuitif, mais cela correspond à l'abstraction du concours. Les images Docker sont des ressources, et donc, comme toutes les autres ressources du concours, doivent être stockées et versionnées dans un magasin en dehors du hall. Concourse ne téléchargera une nouvelle image que s'il en trouve une plus récente, donc je dirais que le flux de travail correct est un peu différent.

Ce que je ferais est d'avoir un travail qui alimente tout ce dont vous avez besoin docker-image-resourceput, et déclenche chaque fois que l'une de ces ressources change. Ensuite, dans la tâche pour laquelle vous avez besoin de l'image, tirez de votre magasin Docker. Concourse mettra en cache l'image jusqu'à ce qu'elle change, donc la plupart du temps, vous n'aurez pas besoin d'utiliser le trafic réseau.

À titre d'exemple, vous pouvez voir comment l'équipe Concourse le fait ... Nous avons un pipeline that builds images utilisant le docker-image-ressource, puis notre main pipeline consume ces images, et utilise une version en cache la grande majorité des temps.

+2

hé merci pour l'effort.Je cherche une configuration plus sans tracas où je peux simplement fournir le fichier Docker comme source au lieu d'une source de référentiel – Harshil

+0

Concourse ne supporte pas cela. –