2017-09-26 1 views
0

J'ai déjà fait une recherche google pour trouver un moyen de configurer une ressource personnalisée dans le pipeline de concours, mais les réponses/documentation ne fonctionnent pas.Comment configurer un type de ressource personnalisé dans un pipeline de concours?

Quelqu'un peut-il fournir un exemple fonctionnel de type de ressource personnalisé extrait d'un registre local et utilisé dans un plan de build? Par exemple, disons que je devais cloner la ressource git et la modifier légèrement et la pousser vers mon registre local. L'image de ressource git serait name: localhost: 5000/local_git: latest

Comment pourriez-vous utiliser cette ressource personnalisée (local_git: latest) dans une définition de pipeline?

Répondre

1

Il y a deux paramètres principaux à considérer ici lors de l'exécution d'un registre local:

  1. doit utiliser insecure_registries:

    insecure_registries: ["my.local.registry:8080"]

  2. Si vous utilisez votre base de registre "localhost", vous ne devriez pas utiliser localhost comme adresse pour votre registre, si vous le faites, l'image du docker essayera de résoudre à l'hôte local de l'image du docker au lieu de votre machine locale, afin d'éviter ce problème, utilisez l'adresse IP ajouter ressez de votre machine locale. (N'UTILISEZ PAS 127.0.0.1)

+0

J'ai également ajouté insecure_registries mais cela ne fonctionne pas. – david

+0

Je suppose que vous exécutez le concours et votre registre docker sur le même hôte droit? Si tel est le cas, vous devez utiliser l'adresse IP hôte + port pour le registre docker. Vous ne devez pas utiliser "localhost" ou "127.0.0.1". Avez-vous essayé cela? – Rolo

+0

c'était le problème. J'ai utilisé un autre local autre que 127.0.0.1. Puisque vous m'avez aidé à résoudre ce problème, est-ce que je peux accepter votre réponse? Merci ! – david

0

Vous pouvez définir votre type de ressource personnalisé dans votre pipeline sous la clé resource_types dans le pipeline yml.

Par exemple:

resource_types: 
    - name: custom-git 
    type: docker-image 
    source: 
     repository: localhost:5000/local_git 

Une remarque importante est que les images de type ressource personnalisée sont extraites d'une manière identique à l'utilisation d'une ressource de base dans votre pipeline, donc pour votre cas d'un registre Docker privé, vous aurez juste besoin de configurer le source: nécessaire sur la ressource docker-image (Voir la documentation pour la docker-image-resource)

vous pouvez alors utiliser le type de ressources comme vous le feriez un des types de base:

resources: 
    - name: some-custom-git-resource 
    type: custom-git 
    source: ... 

Notez que la clé type: de la ressource correspond au name: sur le type de ressource.

Consultez la documentation Concourse pour Configuring Resource Types pour plus d'informations sur l'utilisation des types personnalisés dans votre pipeline.

+0

Avez-vous essayé cette configuration vous-même? J'ai essayé cette configuration dans mon environnement pendant le week-end mais cela n'a pas fonctionné. – david