我尝试使用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
答案 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()'"
}