在jenkins中,docker-compose mysql 0mERROR 1396(HY000)在第一行:操作CREATE USER失败了'root'@'%'

我有一个docker-compose.yml,它设置了一个API服务,一个testingMYSQL数据库和一个java任务工作者应用程序。 然后我对本地堆栈运行API集成testing。 每次运行它时,我都会执行docker-compose rm -v来确保我的数据库对于每次testing都是一样的。

在本地,我的docker-compose文件正确设置了我的图像。

在jenkins,使用相同的docker-compose文件,我得到了上面的错误,在这里复制:

0mERROR 1396 (HY000) at line 1: Operation CREATE USER failed for 'root'@'%'

它似乎可能会与图像的主机名进行。

这是我的数据库设置的Dockerfile:

 FROM mysql ENV MYSQL_DATABASE="db_name" ENV MYSQL_USER="user" ENV MYSQL_PASSWORD="password1" ENV MYSQL_ROOT_PASSWORD="password" COPY *.sql /docker-entrypoint-initdb.d/ EXPOSE 3306 

这是我的docker-compose.yml:

 web-api: image: registry/api-repo links: - test-db ports: - "8625:8625" environment: - MYSQL_DATABASE=db_name - MYSQL_HOST=test-db - MYSQL_USER=user - MYSQL_PASSWORD=password1 custodial-java: image: registry/java-repo links: - test-db environment: - MYSQL_DATABASE=db_name - MYSQL_HOST=test-db - MYSQL_USER=user - MYSQL_PASSWORD=password1 test-db: image: registry/test-db ports: - "3306:3306" 

我很可能在我的Jenkinsconfiguration中丢失了某些东西,但我不确定在哪里寻找。

事实certificate,jenkins的Docker版本与我的本地机器不一样。 在我的本地机器上,我使用的是Docker 17.03,而Jenkins框运行的是Docker Toolbox 1.5。

更新生成机器使用最新的docker工具箱(1.12我相信),我不再会得到这个错误,我的自动化testingfunction!