2017-07-19 9 views
5

Je poussais une image Docker locale avecComment déployer une image Docker à partir d'un référentiel privé sur Cloud Foundry?

docker push bspartifact.artifactory.example.com/bspartifact:1.0 

à mon hub Docker privé. Comment puis-je maintenant déployer cette image dans Cloud Foundry? Le repo est sécurisé par une authentification de base avec nom d'utilisateur et mot de passe. Merci.

Edit:

Essayer les résultats de drapeau --docker-nom d'utilisateur dans l'erreur suivante:

Staging... 
Staging process started ... 
Failed to talk to docker registry: Get https://bspartifact.artifactory.example.com/v2/: dial tcp 10.xx.xxx.xxx:443: getsockopt: connection refused 
Failed to talk to docker registry: Get http://bspartifact.artifactory.example.com/v2/: dial tcp 10.xx.xxx.xxx:80: getsockopt: connection refused 
+0

Avez-vous 'docker login' à votre registre? –

+0

Oui, je l'ai fait. J'ai également essayé --docker-nom d'utilisateur comme mentionné dans la réponse ci-dessous. – user3080315

+0

Montrez-nous 'docker -v' –

Répondre

4

Comme mentionné dans dkoper - vous devez utiliser cf CLI 6.28.0 ou supérieur. Mais votre fournisseur Cloud Foundry devrait également soutenir cela. La fonctionnalité permettant de pousser les images docker a été implémentée avec Cloud Foundry api version 2.82.0. Vous pouvez vérifier quelle version de l'API est utilisée par votre fournisseur Cloud Foundry avec cf api.

3

utilisant cf CLI 6.28.0 ou supérieur, exécutez cf push myapp -o bspartifact.artifactory.example.com/bspartifact:1.0 --docker-username myuser. Cela vous demandera votre mot de passe.
Pour une utilisation non interactive, définissez la propriété d'environnement CF_DOCKER_PASSWORD sur votre mot de passe et l'interface CLI l'utilisera.
Reportez-vous à la documentation suivante pour plus de détails: http://docs.cloudfoundry.org/devguide/deploy-apps/push-docker.html#private-repo

+0

Merci. Malheureusement, cela génère une erreur. J'ai copié le message d'erreur dans ma question. – user3080315

+0

Notez que tout ce que fait l'interface de ligne de commande est de dire à votre CF cible de télécharger l'image Docker à partir du registre que vous avez spécifié au démarrage de l'application. Votre registre doit donc être accessible depuis la cellule de Diego. L'erreur semble indiquer qu'elle ne peut pas. Votre registre sur un réseau routable de CF? Avez-vous configuré vos groupes de sécurité d'application pour autoriser cet accès? – dkoper

+0

Merci. La chose étrange est que si je fais la même chose avec mon Docker local cela fonctionne. Cependant, si j'essaie d'exécuter cette commande pour CF, j'obtiens une erreur. CF et mon hub fonctionnent même dans le même environnement. – user3080315