Обновление плагинов wordpress внутри контейнера docker
вот мой сценарий:
Я разрабатываю плагин, который будет изменяться очень часто, мне нужно создать изображение с помощью docker, в котором установить новую версию wordpress, а затем импортировать все базы данных и плагины из среды разработки, (плагин находится на github)
мне удалось установить wordpress на docker с помощью https://github.com/eugeneware/docker-wordpress-nginx
теперь вот мои вопросы:
1 - Есть ли способ изменить файлы и папки wordpress после его установки в docker (для установки плагинов и использования командной строки, а не WordPress GUI)
2-Если я хочу достичь того, что я объяснил выше, что такое Лучший рабочий процесс?
2 ответов
два возможных ответа на вашу проблему. Я борюсь с этим прямо сейчас, так что YMMV.
во-первых, если вы запускаете контейнер Docker на своем хосте, вы всегда можете приостановить его docker pause
создайте новое изображение из контейнера docker commit
, затем нажмите его в частный репозиторий docker push
(живая установка Wordpress, вероятно, не подходит для общедоступного концентратора докеров). Как только это будет сделано, вы можете возобновить контейнер docker unpause
и затем вы можете пойти обновить изображения на вашем система Дэв. Затем вернитесь, как только обновление будет протестировано и все будет хорошо, а затем docker pull
образ и перезапустите службу, чтобы она использовала новый образ.
не отличное решение, но оно будет работать.
на основе комментария Тадеуш, Я бы не обязательно запускал всю вашу установку WP с тома данных. Они изменчивы, и если по какой-либо причине ваш контейнер удаляется, и он является единственным, ссылающимся на том данных, то вы теряете все (если вы не храните несколько резервных копий -- you do сохранить несколько резервных копий, верно?)
другое решение я рассматриваю оказывает plugin изменения будут развернуты как часть файла Docker. Гораздо более продуманный подход, но может быть webhooked таким образом, что он автоматически создает новый образ Docker при фиксации на репозитории Github. Есть обсуждение того, чтобы сделать этот автоматический процесс сборки здесь. Сервер администрирования конце дела таких нужно вытяните новое изображение, как я упоминал выше. И готово.
конечно, это осталось в качестве упражнения для вашей системы Дэв.
Ура!
поздно на вечеринку, но у меня есть достойное решение. Он не охватывается другими ответами и также должен быть полезен будущим читателям.
Я удобно запускаю это на коробке ec2 t2-micro, и до сих пор он работал отлично. Wordpress, mySQL и Nginx установлены в своих собственных контейнерах (через Docker compose), а Тома Docker используются для поддержания состояния mySQL и Wordpress. Код и дополнительная информация о настройке Nginx взяты из здесь.
докер-сочинять.в формате YML:
version: '3.6'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: db_root_pass
MYSQL_DATABASE: db
MYSQL_USER: db_user
MYSQL_PASSWORD: db_pass
nginx:
depends_on:
- wordpress
image: nginx:latest
restart: always
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
wordpress:
depends_on:
- db
volumes:
- wp_data:/var/www/html/wp-content
image: wordpress:latest
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: db_user
WORDPRESS_DB_PASSWORD: db_pass
volumes:
db_data:
wp_data:
на db_data
том сопоставляется с каталогом данных mySQL в контейнере mySQL и wp_data
том сопоставляется с каталогом содержимого Wordpress в контейнере Wordpress. Что вы можете сделать, это настроить CLI для записи в wp_data
каталог на хосте, и эти изменения будут выявлены на сайте Wordpress без необходимости перестраивать какие-либо контейнеры!