2016-10-11 4 views
0

Я пытаюсь выполнить команды в MySql Docker-Container с Gradle.Подключение к MySql в Docker-Container не работает с Gradle

Это моя неудачная Gradle Задача:

task hello(type: Exec) { 
    dependsOn mysqlStartContainer 
    executable "bash" 
    args "-c", "docker exec mysql mysql -u root -p1234 -e 'select version();'" 
} 

Это ошибка, я получаю:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 
FAILED 

Там нет никаких проблем, когда я использую команду в консоли.

$ docker exec mysql mysql -u root -p1234 -e 'select version();' 
version() 
5.7.15 

ответ

0

Подождите несколько секунд после запуска контейнера. Это сработало для меня.
Например, sleep 3s после docker start:

task mysqlStartContainer(type: Exec) { 
     executable "bash" 
     args "-c", "docker start mysql && sleep 3s" 
} 

task hello(type: Exec) { 
     dependsOn mysqlStartContainer 
     executable "bash" 
     args "-c", "docker exec mysql mysql -uroot -p1234 -e 'select version()'" 
} 
+0

Большое спасибо. Я бы никогда не догадался. Теперь я чувствую себя немного глупо. – develmusa

Смежные вопросы