gpt4 book ai didi

mysql - 在 Jenkins 中,docker-compose mysql 0mERROR 1396 (HY000) 在第 1 行 : Operation CREATE USER failed for 'root' @'%'

转载 作者:行者123 更新时间:2023-11-29 19:16:23 28 4
gpt4 key购买 nike

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

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

在 Jenkins 中,使用相同的 docker-compose 文件,我收到上述错误,复制到此处:

第 1 行 0mERROR 1396 (HY000):“root”@'%' 操作 CREATE USER 失败

图像的主机名可能出现问题。

这是我的数据库设置的 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 配置中可能缺少某些内容,但我不知道该在哪里查找。

最佳答案

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

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

关于mysql - 在 Jenkins 中,docker-compose mysql 0mERROR 1396 (HY000) 在第 1 行 : Operation CREATE USER failed for 'root' @'%' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42675786/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com