我正在尝试创建一个docker容器,它将运行一个生成数据库然后是表的mysql脚本。我的Dockerfile如下所示:
FROM mysql:latest
WORKDIR /
ADD . /
EXPOSE 3306
CMD mysql -u "root" -proot < "schema.sql"
但是当我运行它时,我收到以下错误消息:
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
当我运行sql脚本时,我只收到密码错误。感谢你的帮助!
答案 0 :(得分:0)
与大多数官方docker镜像一样,您可以通过入口点配置容器。
它记录在mysql docker page上。您可以使用MYSQL_ROOT_PASSWORD
,MYSQL_DATABASE
,MYSQL_USER
,MYSQL_PASSWORD
来配置mysql实例。
您将通过-e
环境变量设置此变量,docker
文件中包含environments
或docker-compose.yml
选项。
您可以在here中看到在/docker-entrypoint-initdb.d/ image中复制的文件(.sh,.sql,.sql.gz)将在启动期间运行。
所以你可以写这样的Dockerfile:
FROM mysql:latest
COPY schema.sql /docker-entrypoint-initdb.d/
# No need to override CMD default command of mysql image