Mariadb 图像的 Dockerfile

Dockerfile for Mariadb image

在创建 docker 图像时,我想添加一个数据库并导入架构。当我尝试时,出现以下错误。

160829 22:32:44 mysqld_safe Logging to '/var/lib/mysql/2da0903ff372.err'. 160829 22:32:44 mysqld_safe Starting mysqld daemon with databases from /var/lib/ mysql 160829 22:32:47 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ende d ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run /mysqld/mysqld.sock' (2 "No such file or directory") The command '/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' returned a non-zero code: 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`

请指教我哪里做错了?

简单地说,我需要在 /docker-entrypoint-initdb.d/* 中一个接一个地复制我的 sql 文件 DDL 和 DML。下面是更正后的代码。 docker-entrypoint.sh 具有在我们旋转容器时执行它们的逻辑。

FROM mariadb:latest
# Author
MAINTAINER Anvar 
# Add files 
ADD my.cnf /etc/mysql/my.cnf
ADD ddl.sql /docker-entrypoint-initdb.d/ddl.sql
ADD dml.sql /docker-entrypoint-initdb.d/dml.sql