gpt4 book ai didi

wordpress - Docker Wordpress 插件持久化或映射到本地插件

转载 作者:行者123 更新时间:2023-12-02 19:21:59 26 4
gpt4 key购买 nike

我正在运行最新的 Docker mac 应用程序并创建了一个新的 docker-compose.yml在我的项目目录中。 (这是我的 wordpress 主题)。



这是我的配置 docker-compose.yml下面的文件...

version: '3.7'

networks:
wordpress:
ipam:
config:
- subnet: 172.25.0.0/16

services:
db:
image: mysql:5.7
volumes:
- ./db:/var/lib/mysql:delegated
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
networks:
- wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- .:/var/www/html/wp-content/themes/testing:delegated
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
WORDPRESS_AUTH_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_SECURE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_LOGGED_IN_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_NONCE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_SECURE_AUTH_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_LOGGED_IN_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_NONCE_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_DEBUG: 1
networks:
- wordpress

到目前为止,我觉得它很棒。我在使数据库持久化和弄清楚 wp-content 时遇到了一些问题。文件夹需要将所有者设置为 www-data .

但是在修复上述问题后,它工作得很好,如果我 docker-compose downup我的数据库是持久的。另外我的数据库是从我的本地主题中提取的。

令人失望的是,如果我 docker-compose down,我的插件文件夹会自行重置。或 docker-compose rm .

有什么方法可以从我的 mac 或项目主题文件夹中映射本地文件夹吗?然后我可以在这里存储我的插件,所以当我 docker-compose up -d它记得我的插件。

任何想法都会很棒。

例如,我可以将插件文件夹放在我的本地主题文件夹项目中...

enter image description here



解决了!

因为我正在运行本地 dev、npm、composer 等。我的目标是保持一个真正简单的文件夹结构,所以我的主题是我的项目在 phpStorm 中的路径。

我现在通过添加以下卷映射(见下面的代码)在我的主题路由项目文件夹中包含了我的插件和上传文件夹,用于本地持久性数据。

这不是典型的 Wordpress 结构,但我不 promise pluginsuploads到版本控制或我的登台服务器环境。这些纯粹是为了我的本地持久数据,以防我 docker-compose down .

现在查看我的 phpStorm 项目结构...

enter image description here

看我的 docker-compose.yml配置文件...
version: '3.7'

networks:
wordpress:
ipam:
config:
- subnet: 172.25.0.0/16

services:
db:
image: mysql:5.7
volumes:
- ./db:/var/lib/mysql:delegated
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
networks:
- wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- .:/var/www/html/wp-content/themes/testing:delegated
- ./plugins:/var/www/html/wp-content/plugins
- ./uploads:/var/www/html/wp-content/uploads
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
WORDPRESS_AUTH_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_SECURE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_LOGGED_IN_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_NONCE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_SECURE_AUTH_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_LOGGED_IN_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_NONCE_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
WORDPRESS_DEBUG: 1
networks:
- wordpress

感谢 @Ludi Sistemaš您的帮助。

最佳答案

是的,有办法。您首先需要重新排列目录结构。
在您的主机上,您使用主题目录作为挂载点。让我们说你会这样做。
在您的主机上创建新目录,并将其命名为 wp-content。现在你可以在你的 docker-compose 文件中编辑这一行,它需要移动到这个 wp-content 目录中。

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

将您的主题放在 wp-content/themes 中。
它应该就像它在服务器上的位置一样。
注意:所有其他 wp 默认目录结构都将在该挂载点上重新创建,并且将是持久的。

编辑:
聊了一会后,我明白了 OP 需要什么。
为了从这个架构挂载另一个目录。您需要指向正确的路径并像这样安装它:
volumes:
- .:/var/www/html/wp-content/themes/testing:delegated
- ./plugins:/var/www/html/wp-content/plugins

关于wordpress - Docker Wordpress 插件持久化或映射到本地插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58936160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com