我正在尝试使用此文档设置Wordpress:
我的主机目录在docker-compose文件中显示如下:
volumes:
- './mariadb_data:/bitnami'
...
volumes:
- './wordpress_data:/bitnami'
运行docker-compose up
时,会出现以下错误:
mariadb_1 | INFO ==> Starting mysqld_safe...
mariadb_1 | Could not open required defaults file: /opt/bitnami/mariadb/conf/my.cnf
mariadb_1 | Fatal error in defaults handling. Program aborted
mariadb_1 | WARNING: Defaults file '/opt/bitnami/mariadb/conf/my.cnf' not found!
mariadb_1 | Could not open required defaults file: /opt/bitnami/mariadb/conf/my.cnf
mariadb_1 | Fatal error in defaults handling. Program aborted
mariadb_1 | WARNING: Defaults file '/opt/bitnami/mariadb/conf/my.cnf' not found!
mariadb_1 | 171105 05:15:41 mysqld_safe Logging to '/opt/bitnami/mariadb/data/200101d1b330.err'.
mariadb_1 | 171105 05:15:41 mysqld_safe Starting mysqld daemon with databases from /opt/bitnami/mariadb/data
mariadb_1 | /opt/bitnami/mariadb/bin/mysqld_safe_helper: Can't create/write to file '/opt/bitnami/mariadb/data/200101d1b330.err' (Errcode: 2 "No such file or directory")
myproject_mariadb_1 exited with code 1
但是,如果我将docker-compose文件更改为使用非主机目录:
volumes:
- 'mariadb_data:/bitnami'
...
volumes:
- 'wordpress_data:/bitnami'
... docker-compose up
有效。
如果我然后停止docker,然后将docker-compose文件恢复为再次使用主机目录,docker-compose up
现在可以正常工作,并且主机目录正确填充。
这是我的问题的解决方案,但我想知道为什么,如果有办法让事情没有这个解决办法。
答案 0 :(得分:0)
检查bitnami/bitnami-docker-mariadb
issue 123是否与您的案件相关:
似乎docker-compose up并没有从头开始创建一个容器(使用干净的文件系统),而是使用了一个预先存在的容器。我从开头的序列中推断出这一点:
Starting mariadb_mariadb_1
Attaching to mariadb_mariadb_1
...
在我看来,这个容器在之前的执行中是以
/bitnami/mariadb
的附加卷开始的。之后,停止容器,分离该容积,然后重新启动容器。它没有配置任何东西,只是试图运行mysql服务器二进制文件。由于我们执行从/opt/bitnami/mariadb
指向/bitnami/mariadb
(包含my.cnf
文件)的符号链接,因此该文件丢失,并且二进制文件在开始时崩溃。您可以尝试使用docker-compose file we provide in this repo吗?如果您只是为了添加环境变量而修改它,则不应该遇到这些问题。
作为解决方法,只需运行以下命令:
docker-compose down -v
docker-compose up
它将删除MariaDB容器以及相关的任何卷,并从头开始。请记住,您将丢失在容器中设置的任何状态。