在创建docker镜像时,我想添加数据库和导入架构 . 当我尝试时,我得到以下错误 .
160829 22:32:44 mysqld_safe登录到'/var/lib/mysql/2da0903ff372.err' . 160829 22:32:44 mysqld_safe用/ var / lib / mysql中的数据库启动mysqld守护进程160829 22:32:47来自pid文件的mysqld_safe mysqld /var/run/mysqld/mysqld.pid ende d ERROR 2002(HY000):可以' t通过socket'/ var / run /mysqld/mysqld.sock'连接到本地MySQL服务器(2“没有这样的文件或目录”)命令'/ bin / sh -c / bin / bash -c“/ usr / bin / mysqld_safe&“&& sleep 5 && mysq l -u root -e”CREATE DATABASE portal“&& mysql -u root portal </tmp/ddl.sql&& mysql -u root portal </tmp/dml.sql"返回非 - 零码:1
下面是我用来创建图像的Dockerfile .
FROM mariadb:latest
# Author
MAINTAINER Anvar
# Add files
ADD my.cnf /etc/mysql/my.cnf
ADD ddl.sql /tmp/ddl.sql
ADD dml.sql /tmp/dml.sql
RUN /bin/bash -c "/usr/bin/mysqld_safe &" && sleep 5 && mysql -u root -CREATE DATABASE portal" && mysql -u root portal < /tmp/ddl.sql`
请告诉我哪里做错了?
1 回答
简单地说,我需要在/docker-entrypoint-initdb.d/*内一个接一个地复制我的sql文件DDL和DML . 以下是更正后的代码 . docker-entrypoint.sh具有在旋转容器时执行它们的逻辑 .