2017-08-14 7 views
0

Mon problème

J'ai déployé avec succès un travail nomade avec quelques dizaines de conteneurs Redis Docker sur AWS, en utilisant l'image par défaut Redis de Dockerhub.nomade: Pull image docker de ECR avec AWS accès et les clés secrètes

J'ai légèrement modifié le fichier de configuration par défaut créé par nomad init pour modifier le nombre de conteneurs en cours d'exécution, et tout fonctionne comme prévu

Le problème est que l'image réelle, je voudrais courir est ECR, qui nécessite des autorisations AWS (accès et clé secrète), et je ne sais pas comment les envoyer.

code

job "example" { 
    datacenters = ["dc1"] 
    type = "service" 
    update { 
    max_parallel = 1 
    min_healthy_time = "10s" 
    healthy_deadline = "3m" 
    auto_revert = false  
    canary = 0 
    }  
    group "cache" { 
    count = 30  
    restart { 
     attempts = 10 
     interval = "5m"  
     delay = "25s"  
     mode = "delay" 
    }  
    ephemeral_disk {  
     size = 300 
    }  
    task "redis" { 
     driver = "docker"  
     config { 

    # My problem here 

    image = "https://-whatever-.dkr.ecr.us-east-1.amazonaws.com/-whatever-" 
     port_map { 
      db = 6379 
     } 
     } 
     resources { 
     network { 
      mbits = 10 
      port "db" {} 
     } 
     } 
     service { 
     name = "global-redis-check" 
     tags = ["global", "cache"] 
     port = "db" 
     check { 
      name  = "alive" 
      type  = "tcp" 
      interval = "10s" 
      timeout = "2s" 
     } 
     } 
    } 
    } 
} 

Qu'ai-je essayé

  • Vaste Recherche Google
  • Lecture the manual
  • Placer les aws informations d'identification dans la machine qui exécute le fichier nomade (en utilisant aws configure)

Ma question

Comment le nomade peut-il être configuré pour extraire des conteneurs Docker à partir d'AWS ECR à l'aide des informations d'identification AWS?

Répondre

1

Je ne me ECR, mais si elle agit comme un registre de docker normale, c'est ce que je fais pour mon registre, et cela fonctionne. En supposant que la phrase précédente, il devrait fonctionner correctement pour vous aussi:

config { 
       image = "registry.service.consul:5000/MYDOCKERIMAGENAME:latest" 
       auth { 
        username = "MYMAGICUSER" 
        password = "MYMAGICPASSWORD" 
       } 
      }