Docker-compose每次都会创建一个新的数据库,不保存数据

时间:2017-07-19 14:35:15

标签: wordpress docker docker-compose

我正在做一些本地WP开发。每次我做出更改(比如添加插件)

并运行:docker-compose up -d && docker-compose logs -f wordpress

它会创建一个新的数据库,并且插件会随着任何更改而被删除很长时间。我可以每次都使用一体化迁移插件导出.wp文件,然后重新导入,但有什么更好的方式?

3 个答案:

答案 0 :(得分:0)

在docker-compose.yml中尝试top-level volume。无论您的后端服务被docker-compose重新启动/重建/销毁多少次,您都可以使用卷来保存文件系统级别的后端数据。

答案 1 :(得分:0)

如果要保留任何数据,则可以将这些数据装入卷中。可以从documentation了解docker中卷的使用情况。对于wordpress,您可以在容器的/var/www/html/中安装主机目录。以下卷配置应该可以帮助您。

volumes:
  - ./html/:/var/www/html/

提示1:如果您想在图像中安装很少的东西,请先在dockerfile中安装并创建自己的自定义图像。 Build应该可以帮助您在docker-compose.yml中使用dockerfile。

提示2:为了让您更好地了解如何在docker中进行本地开发,我建议您使用dockerfile来实现此目的。

在dockerfile中,您可以使用RUN命令安装任何内容。每个RUN命令的输出都存储在 cache 中。因此,一旦您成功构建了映像,那么下一个RUN命令将不会被执行,而是将使用它的缓存

答案 2 :(得分:0)

在服务卷下您可以使用以下语法:

host:container 

示例:

wordpress:

  volumes:

      -../html:/var/www/html

指定绝对路径映射

/opt/data:/var/lib/mysql

主机上的路径,相对于Compose文件

./cache:/tmp/cache

用户相对路径

~/configs:/etc/configs/:ro

命名卷

datavolume:/var/lib/mysql