我正在运行最新的Docker应用程序,并在我的项目目录中创建了一个新的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 down和up,那么我的数据库是持久的。另外,我的数据库正被从我的本地主题中删除。
让它失望的是,如果我使用docker-compose down或
docker-compose rm。
有什么方法可以从我的mac或项目主题文件夹映射本地文件夹吗?然后我可以在这里存储我的插件,所以当我docker-compose up -d时,它会记住我的插件。
任何想法都会很棒。
例如,我可以将插件文件夹放在本地主题文件夹项目中.

解决了!
因为我正在运行本地开发,npm,composer等等,我的目标是保持一个真正简单的文件夹结构,所以我的主题是我的项目在phpStorm中的路线。
现在,通过添加以下卷映射,我在主题路由项目文件夹中包含了本地持久数据的插件和上载文件夹(请参见下面的代码)。
这不是典型的Wordpress结构,但我不会将plugins和uploads提交到版本控制或临时服务器环境中。这些都是我的本地持久数据(以docker-compose down为例)的纯这里。
现在请看我的phpStorm项目结构。

请看我的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š的帮助。
发布于 2019-11-19 15:00:10
是的,有个办法。你首先需要重新安排董事的结构。在主机上,使用主题目录作为挂载点。让我们说你要这样做。在您的主机上创建新目录,并将其称为wp内容。现在,您可以在您的文件中编辑这一行,该文件需要移动到这个wp内容目录中。
volumes:
- .:/var/www/html/wp-content/ 把你的主题放在wp-内容/主题中。就像它在服务器上的位置一样。注意:所有其他的wp默认目录结构都将在这个挂载点上重新创建,并且它将是持久的。
编辑:聊了一会儿后,我明白了OP需要什么。以便从这个体系结构中安装另一个dir。您需要指向正确的路径并按如下方式挂载它:
volumes:
- .:/var/www/html/wp-content/themes/testing:delegated
- ./plugins:/var/www/html/wp-content/pluginshttps://stackoverflow.com/questions/58936160
复制相似问题