如何在dockerfile中设置mysql用户名

zcm*_*rld 5 mysql docker dockerfile

在ubuntu中安装mysql时apt-get install mysql-server,会在安装过程中询问mysql用户名和密码.

但是当使用dockerfile构建mysql映像时,如何提供用户名和密码?

我尝试使用dockerfile如下:

FROM ubuntu:14.04
apt-get update
apt-get install -y mysql-server
Run Code Online (Sandbox Code Playgroud)

但是在构建映像时,我发现我们可以在没有用户名和密码的情况下登录mysql.

当我使用dockerfile构建我的图像时,如何设置用户名和密码?

Tho*_*eil 10

如果你看一下官方的Docker MySQL图像Dockerfile,你会发现他们是如何使用debconf-set-selections做的.

相关说明如下:

RUN { \
        echo mysql-community-server mysql-community-server/data-dir select ''; \
        echo mysql-community-server mysql-community-server/root-pass password ''; \
        echo mysql-community-server mysql-community-server/re-root-pass password ''; \
        echo mysql-community-server mysql-community-server/remove-test-db select false; \
    } | debconf-set-selections \
    && apt-get update && apt-get install -y mysql-server
Run Code Online (Sandbox Code Playgroud)

debconf-set-selections 是一个工具,允许您为稍后安装期间将要询问的问题准备答案.

  • 谢谢!我发现这需要一个额外的行,如[here](https://github.com/phusion/baseimage-docker/issues/58#issuecomment-47995343)所述.完整的,经过构建测试的示例是[here](http://stackoverflow.com/a/39376045/577088). (2认同)