Docker Gitlab CI/CD错误1045(28000):拒绝用户访问

Docker Gitlab CI/CD错误1045(28000):拒绝用户访问,docker,gitlab,mariadb,Docker,Gitlab,Mariadb,我正在尝试设置gitlab CI/CD管道。管道需要做的事情之一是运行单元和集成测试。所以我需要一个mariadb设置。我创建了一个docker文件,并构建了一个映像,该映像应该设置一个环境变量,以便创建一个名为chris的mysql用户,并使用名为chris的密码。然后,我将docker图像推送到amazon ECR。在我的gitlab-ci.yml文件中,使用的图像是我推送到amazon ECR的图像。我遇到的问题是,用户chris无法访问,但用户root可以正常工作。我需要向docker文

我正在尝试设置gitlab CI/CD管道。管道需要做的事情之一是运行单元和集成测试。所以我需要一个mariadb设置。我创建了一个docker文件,并构建了一个映像,该映像应该设置一个环境变量,以便创建一个名为chris的mysql用户,并使用名为chris的密码。然后,我将docker图像推送到amazon ECR。在我的gitlab-ci.yml文件中,使用的图像是我推送到amazon ECR的图像。我遇到的问题是,用户chris无法访问,但用户root可以正常工作。我需要向docker文件中添加什么,以便使用用户chris而不是root

dockerfile

FROM mariadb:latest

ENV MYSQL_ROOT_PASSWORD "chris"
ENV MYSQL_DATABASE "testingdb"
ENV MYSQL_USER "chris"
ENV MYSQL_PASSWORD "chris"

RUN apt-get update && apt-get -y install vim

EXPOSE 3306

CMD ["mysqld"]
gitlab-ci.yml

image: XXXXXX.XXXXX.amazonaws.com/chris_mariadb:latest

services:
  - mariadb

variables:
  # Configure mysql environment variables (https://hub.docker.com/_/mysql/)
  MYSQL_DATABASE: "testingdb"
  MYSQL_ROOT_PASSWORD: "chris"
  Host: mysql
  User: chris
  Password: chris

stages:
  - build

build:
  stage: build
  script:
    - ls
    - mysql --user=chris --password=chris --host=localhost --port=3306 --database=testingdb --protocol=TCP --batch --local-infile < ./data/schema.sql

image:XXXXXX.XXXXX.amazonaws.com/chris\u mariadb:latest
服务:
-马里亚布
变量:
#配置mysql环境变量(https://hub.docker.com/_/mysql/)
MYSQL_数据库:“testingdb”
MYSQL\u ROOT\u密码:“chris”
主机:mysql
用户:克里斯
密码:克里斯
阶段:
-建造
建造:
阶段:建造
脚本:
-ls
-mysql--user=chris--password=chris--host=localhost--port=3306--database=testingdb--protocol=TCP--batch--local infle<./data/schema.sql
错误

$mysql--user=chris--password=chris--host=localhost--port=3306--database=testingdb--protocol=TCP--batch--local infle

任何帮助都会很好。我知道我可能不需要gitlab-ci.yml中的变量,因为我没有使用mysql运行程序,但我绝望了,正在尽我所能让它工作。我尝试将图像作为一个容器运行,进入并使用通配符和chris@127.0.0.1,并将这些更改提高到ECR,但这并没有改变任何事情。此外,当user=root和password=chris时,这也可以正常工作。当我不使用TCP并尝试使用sock时,我也会出错,因此我不想再次使用该方法,除非得到超级推荐。

在gitlab ci.yml中添加环境变量MYSQL\u USER:“chris”。

这对我们来说不是一个容易调试的方法,我们在随机生成的数据库密码中有一个
…$F…
,该密码存储在gitlab CI变量中,gitlab试图用一个变量替换它


基本上更改了密码,这导致了相同的问题

尝试将用户从chris更改为chris@127.0.0.1然后再试一次
$ mysql --user=chris --password=chris --host=localhost --port=3306 --database=testingdb --protocol=TCP --batch --local-infile < ./data/schema.sql
ERROR 1045 (28000): Access denied for user 'chris'@'127.0.0.1' (using password: YES)