Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Wordpress插件持久化或映射到本地插件_Wordpress_Docker_Docker Volume - Fatal编程技术网

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

Docker Wordpress插件持久化或映射到本地插件,wordpress,docker,docker-volume,Wordpress,Docker,Docker Volume,我正在运行最新的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:

我正在运行最新的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,我的数据库是持久的。另外,我的数据库是从我的本地主题中提取的

让它失望的是,如果我关闭docker compose或docker compose rm,我的插件文件夹会自动重置

是否有某种方法可以从mac或project主题文件夹映射本地文件夹?然后我可以将我的插件存储在这里,这样当我编写docker up-d时,它就会记住我的插件

任何想法都会很棒

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

解决了

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

现在,通过添加以下卷映射,我将本地持久数据的插件和上载文件夹包括在主题路由项目文件夹中,请参见下面的代码

这不是典型的Wordpress结构,但我不会提交插件并上传到版本控制或我的暂存服务器环境。这些纯粹是为了我的本地持久性数据,以防我写下docker

现在查看我的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
谢谢你的帮助


是的,有办法。首先需要重新排列目录的结构。 在主机上,使用主题目录作为装载点。假设你打算这样做。 在您的主机上创建新目录,并将其称为wp content。现在,您可以编辑docker compose文件中的这一行,该文件需要移动到此wp内容目录中

   volumes:
       - .:/var/www/html/wp-content/  
将你的主题放在wp内容/主题中。 它应该和它在服务器上的位置完全一样。 注意:所有其他wp默认目录结构都将在该装载点上重新创建,并且它将是持久的

编辑: 聊了一会儿,我明白了OP需要什么。 以便从该体系结构装载另一个目录。您需要指向正确的路径,并按如下方式安装:

volumes:
  - .:/var/www/html/wp-content/themes/testing:delegated
  - ./plugins:/var/www/html/wp-content/plugins

是的,有办法。首先需要重新排列目录的结构。 在主机上,使用主题目录作为装载点。假设你打算这样做。 在您的主机上创建新目录,并将其称为wp content。现在,您可以编辑docker compose文件中的这一行,该文件需要移动到此wp内容目录中

   volumes:
       - .:/var/www/html/wp-content/  
将你的主题放在wp内容/主题中。 它应该和它在服务器上的位置完全一样。 注意:所有其他wp默认目录结构都将在该装载点上重新创建,并且它将是持久的

编辑: 聊了一会儿,我明白了OP需要什么。 以便从该体系结构装载另一个目录。您需要指向正确的路径,并按如下方式安装:

volumes:
  - .:/var/www/html/wp-content/themes/testing:delegated
  - ./plugins:/var/www/html/wp-content/plugins

我想把plugins文件夹保存在project文件夹中,如图所示,而不是重新安排结构。我已经在这里的db文件夹中存储了我的数据库,我不需要版本控制,我只需要从git中排除这个文件夹,我只需要持久性插件,并可能与上载相同。好的,然后你可以做类似的事情..//插件:/var/www/html/wp content/plugins,然后以同样的方式将其添加到下面的主题中。好的,很酷,让我看看我是否能解决这个问题,我刚刚开始使用docker。我的理解是。/../plugins:这是我在项目中的plugins文件夹,它将映射到var/www/html/wp content/plugins?我的主题卷映射设置为-。:/var/www/html/wp content/themes/testing:委托,所以应该是。/../plugins:而不是。/../plugins:?Docker很好。非常感谢你,太完美了。我的版本-./plugins:/var/www/html/wp content/plugins和-./uploads:/var/www/html/wp content/uploads,我将从我的版本控制中排除它们。我将更新上面的问题。我想把插件文件夹保存在项目文件夹中,如图所示,而不是重新安排结构。我已经在这里的db文件夹中存储了我的数据库,我不需要版本控制,我只需要从git中排除这个文件夹,我只需要持久性插件,并可能与上载相同。好的,然后你可以做类似的事情..//插件:/var/www/html/wp content/plugins,然后以同样的方式将其添加到下面的主题中。好的,很酷,让我看看我是否能解决这个问题,我刚刚开始使用docker。我的理解是。/../plugins:这是我在项目中的plugins文件夹,它映射到var/www/html/wp content/plugins?我的主题
卷映射设置为-。:/var/www/html/wp content/themes/testing:委派,所以应该委派。/plugins:而不是。/../plugins:?Docker很好。非常感谢你,太完美了。我的版本-./plugins:/var/www/html/wp content/plugins和-./uploads:/var/www/html/wp content/uploads,我将从我的版本控制中排除它们。我将更新上面的问题。