坚持与Bitnami的WordPress的泊坞窗设置

我试图用这个文档设置Wordpress:

https://github.com/bitnami/bitnami-docker-wordpress#mount-host-directories-as-data-volumes-with-docker-compose

我的主机目录在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 现在将工作,并且主机目录正确填充

这是我的问题的解决scheme,但我想知道为什么,如果有办法让事情没有这个解决方法。

检查bitnami/bitnami-docker-mariadb问题123是否与您的情况相关:

看起来docker-compose up并没有从头开始创build一个容器(使用一个干净的文件系统),而是使用了一个预先存在的容器。 我从开始的序列推断出这一点:

 Starting mariadb_mariadb_1 Attaching to mariadb_mariadb_1 ... 

在我看来,这个容器在其之前的执行过程中,是以/bitnami/mariadb的附加卷开始的。 之后,将容器停止,将该容积分离,然后重新启动容器。 它没有configuration任何东西,只是试图运行MySQL服务器二进制文件。 由于我们执行/opt/bitnami/mariadb指向/bitnami/mariadb (包括my.cnf文件)的符号链接,因此该文件丢失,并且二进制文件在启动时崩溃。

你能否请使用我们在这个回购中提供的docker-compose文件 ? 如果你只是修改它添加环境variables,你不应该遇到这样的问题。

作为解决方法,只需运行以下命令:

 docker-compose down -v docker-compose up 

它将删除MariaDB容器以及相关的任何卷,并从头开始。 请记住,您将失去您在容器中设置的任何状态。