我试图在我的CI工作中使用mysql服务,但我一直收到拒绝连接的错误。
我的.gitlab-ci.yml配置:
variables:
MYSQL_DATABASE: mysql_test
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
mysql-test:
stage: test
needs: []
image: mysql:8.0.28
variables:
MYSQL_DATABASE: mysql_test
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
services:
- name: mysql:8.0.28
alias: mysql
variables:
MYSQL_DATABASE: mysql_test
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
script:
- echo SELECT 'OK' | mysql mysql_test --host='mysql' --user=root --password=''尽管在三个不同的地方设置了MYSQL_ALLOW_EMPTY_PASSWORD,但是服务容器日志给了我:
2022-08-14 00:11:04+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.28-1debian10 started.
2022-08-14 00:11:04+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2022-08-14 00:11:04+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.28-1debian10 started.
2022-08-14 00:11:04+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
You need to specify one of the following:
- MYSQL_ROOT_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
- MYSQL_RANDOM_ROOT_PASSWORDGitLab及其运行程序正在安装舵机(图gitlab-5.7.0,app 14.7.0版)
发布于 2022-08-14 14:23:38
我试着运行你的脚本--它起作用了。您可以在mysql-测试#2879743403作业和我的示例..gitlab ci.yml源代码中查看
您应该在脚本中回显变量,以验证变量设置是否正确。
mysql-test:
tags:
- docker
stage: test
needs: []
image: mysql:8.0.28
variables:
MYSQL_DATABASE: mysql_test
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
services:
- name: mysql:8.0.28
alias: mysql
script:
- echo $MYSQL_DATABASE
- echo $MYSQL_ALLOW_EMPTY_PASSWORD
- |
mysql mysql_test --host='mysql' --user=root --password='' <<SQL
SELECT version();
exit
SQL发布于 2022-08-15 09:42:45
变量没有为服务设置属性,因为services:variables:仅在GitLab运行程序14.8和以后支持,在作业中设置变量,但服务似乎不起作用。
其次,加载MySQL服务需要一分钟时间。将足够长的sleep添加到脚本中,以及正确设置的变量使它能够愉快地连接。
https://stackoverflow.com/questions/73348586
复制相似问题