2017-04-09 2 views
0

Je n'arrive pas à me connecter à un conteneur MySQL dans AWS ECS. Voici le docker-compose.yml J'utilise avec ecs-cli compose up:Impossible de se connecter au conteneur MySQL sur AWS ECS

version: '2' 

services: 
    db: 
    image: mysql:5.7 
    restart: always 
    environment: 
     MYSQL_ROOT_PASSWORD: wordpress 
     MYSQL_DATABASE: wordpress 
     MYSQL_USER: wordpress 
     MYSQL_PASSWORD: wordpress 
    logging: 
     driver: awslogs 
     options: 
     awslogs-group: "mylogs" 
     awslogs-region: "us-east-2" 
     awslogs-stream-prefix: "db" 
    mem_limit: 300000000 

    wordpress: 
    depends_on: 
     - db 
    image: wordpress:latest 
    ports: 
     - "8000:80" 
    restart: always 
    environment: 
     WORDPRESS_DB_HOST: db:3306 
     WORDPRESS_DB_PASSWORD: wordpress 
    logging: 
     driver: awslogs 
     options: 
     awslogs-group: "mylogs" 
     awslogs-region: "us-east-2" 
     awslogs-stream-prefix: "web" 
    mem_limit: 300000000 

L'erreur que je l'obtiens est:

MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known 
Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 22 
Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 22 

Cela semble fonctionner très bien localement, mais pas dans AWS ECS. Ai-je besoin de faire autre chose pour AWS?

+0

Peut-être devez-vous ouvrir le port dans votre groupe de sécurité associé sur aws? – opHASnoNAME

+0

Il ne devrait pas être nécessaire d'ouvrir le port puisque le conteneur WordPress est sur la même machine que le conteneur MySQL. Voici l'exemple des docs AWS http://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_task_definitions.html#example_task_definition-wordpress – Omar

Répondre

0

Le champ depends_on est not supported in ECS. Votre conteneur wordpress commence avant que votre conteneur db ouvre son port, d'où l'erreur.

Vous devrez introduire un script wrapper pour attendre que le port devienne disponible.