主机操作系统:Ubuntu 16.04 x86_64
Docker 操作系统:Alpine Linux Edge
Docker 版本:1.11.0,内部版本 4dc5990
MariaDB 版本:10.1.13
我尝试通过 Dockerfile 安装 MariaDB 并在入口点(startup.sh)上启动它,但无法做到这一点。
所有文件(Dockerfile、my.cnf、startup.sh)和docker build .
日志都在这里:https://gist.github.com/rakshazi/1048c45ba7da181b9e87ed5ed4faef9b
我的配置有什么问题以及如何修复它?
答案1
Dockerfile 中的每个 RUN 行都作为容器中唯一的进程执行。您正在运行的命令 mysql_install_db --verbose && /usr/bin/mysqladmin -u root 密码 'password' 尝试与已运行的 mysql/mariadb 服务器进行通信。由于这是容器中唯一运行的东西,并且没有 mysql 服务运行,因此失败。
通常,此类内容应该在运行时在 ENTRYPOINT 脚本中运行,而不是在构建时运行。这是因为您希望 mysql/mariadb 文件存储在卷中而不是分层文件系统中。
由程序员@ 回答https://forums.docker.com/t/cant-build-container-with-mariadb/10256/2