Docker-Container中与MySql的连接因Gradle而失败

时间:2016-10-11 13:59:57

标签: mysql gradle docker

我尝试使用Gradle在MySql Docker-Container中执行命令。

这是我不成功的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

1 个答案:

答案 0 :(得分: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()'"
}