When installing mysql in ubuntu with apt-get install mysql-server, the mysql username and password are asked during the installation.
But when using a dockerfile to build a mysql image, how can the username and password be provided?
I tried using the dockerfile as follows:
FROM ubuntu:14.04
apt-get update
apt-get install -y mysql-server
But when building the image, I found out we can login in the mysql without username and password.
How can I set the username and password when I use dockerfile to build my images?
解决方案
If you take a look at the official Docker MySQL image Dockerfile, you will discover how they did it using debconf-set-selections.
The relevant instructions are:
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
debconf-set-selections is a tool that allows you to prepare the answers for the questions that will be asked during the later installation.