Для удобной организации разработки плагинов для WordPress и использования Docker можно воспользоваться следующей структурой директорий:
```
project/
│
├── docker-compose.yml
├── .gitignore
├── src/
│ └── plugins/ # папка с исходным кодом ваших плагинов
│ └── my-plugin/
│ ├── my-plugin.php
│ └── ...
└── wp-content/ # сюда будут устанавливаться плагины через WP admin
├── plugins/
└── ...
```
Для настройки Docker и разделения плагинов можно воспользоваться следующим `docker-compose.yml`:
```yaml
version: '3'
services:
wordpress:
image: wordpress:latest
ports:
- "8000:80"
volumes:
- ./src/plugins/:/var/www/html/wp-content/plugins/my-plugins
- wp-content:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
volumes:
wp-content:
db_data:
```
Главной задачей является монтирование локальной папки `src/plugins` внутрь контейнера Docker так, чтобы она попадала в папку плагинов WordPress. При этом папка `wp-content` монтируется как Docker volume для хранения установленных через админ-панель плагинов и других файлов WP.
Для исключения всех файлов WordPress из вашего репозитория Git (как и папок с подключенными плагинами через админку WP), используйте следующий `.gitignore`:
```
# Игнорирование содержимого wp-content, кроме вашей папки с исходниками плагинов
wp-content/*
!wp-content/plugins/
wp-content/plugins/*
# Но не игнорировать каталог с исходным кодом плагинов
!src/
```
Таким образом, в вашем репозитории будут находиться только исходники плагинов, а установленные через административную платформу WordPress плагины будут игнорироваться Git и храниться в Docker volume.