Docker 未使用 Dockerfile 将用户添加到 MariaDB

Cod*_*r99 8 mariadb docker

这是我的 Dockerfile,

FROM mariadb:10.3.5

RUN apt-get update & apt-get upgrade -y

ENV MYSQL_USER=user1 \
    MYSQL_USER_PASSWORD=pass5 \
    MYSQL_DATABASE=db \
    MYSQL_ROOT_PASSWORD=XXX

ADD . /

WORKDIR /
Run Code Online (Sandbox Code Playgroud)

但是,这不会将我的 user1 添加到数据库构建中。root 密码有效,但仅此而已。我已经完全删除了我所做的所有通过测试,包括所有卷数据,但仍然没有添加用户。那么我做错了什么?

谢谢,

Nic*_*lay 7

官方mariadb docker 镜像具有内置环境变量MYSQL_USERMYSQL_PASSWORD

这些变量是可选的,结合使用来创建新用户并设置该用户的密码。该用户将被授予对 MYSQL_DATABASE 变量指定的数据库的超级用户权限(见上文)。创建用户需要这两个变量。

因此,该变量MYSQL_PASSWORD拼写错误(它被定义为MYSQL_USER_PASSWORD),这就是根本没有创建 mysql 用户的原因。

正确的Dockerfile是:

FROM mariadb:10.3.5

RUN apt-get update & apt-get upgrade -y

ENV MYSQL_USER=user1 \
    MYSQL_PASSWORD=pass5 \
    MYSQL_DATABASE=db \
    MYSQL_ROOT_PASSWORD=XXX

ADD . /

WORKDIR /
Run Code Online (Sandbox Code Playgroud)