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

时间:2017-03-08 15:46:31

标签: mysql docker jenkins

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

在本地,我的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"

我可能在Jenkins配置中遗漏了一些东西,但我不确定在哪里看。

1 个答案:

答案 0 :(得分:0)

事实证明,Jenkins上的Docker版本与我的本地机器不同。在我的本地机器上,我使用的是Docker 17.03,而Jenkins盒子正在运行Docker Toolbox 1.5。

在更新构建机器以使用最新的docker工具箱(我相信1.12)之后,我不再收到此错误和我的自动化测试功能!