2015-12-05 3 views
2

Я установил бродягу на Mac, и я хочу, чтобы достичь этого:Vagrant + Docker + Wordpress

  1. Launch бродяга вверх и имеют бродягу с грузчиком установлен и докер составить
  2. Установка Wordpress с MySQL внутри этого бомжа машина с докер-компоновать до
  3. Имейте папку (/ вар/WWW/HTML) в Докер контейнера отображается как объем в моей бродячей машине в/dockermapinVagrant
  4. Имейте это/dockermapinVagrant на мой хост (OS X) и быть возможность изменять файлы непосредственно с хоста

Я достиг этого, и все работает отлично. я могу добавить шаблоны из моего OS X хоста без проблем (перетаскивание темы в темах папка на хосте OS X), увидеть изменения непосредственно на сайте Wordpress, используя мой браузер ...

Проблемы

  • Я заметил, что я не могу установить любые плагины на Wordpress ( приборная панель -> обновления) у меня есть сообщение:
    • для выполнения требуемого действия, WordPress необходимо получить доступ к веб-серверу. Введите свои учетные данные FTP, чтобы продолжить. Если вы не указали свои учетные данные, обратитесь к своему веб-хосту.

Решение я попытался

Изменение разрешения в Докер контейнера сор, установив пользователя на WWW-данных и CHMOD 777, а на какую-нибудь папку, как WP-содержание он не изменить на 777. Кроме того, установка владельца на www-data не работает вообще, он всегда остается на 1000: 1000 в контейнере.

Есть ли способ обновить плагины на wordpress в контейнере докеров без FTP?

Может быть, лучший способ сделать это? Используйте контейнер с данными только на бродячей машине с FTP-доступом к установленному тому? И сопоставьте объем контейнера данных на брандмауэре, а затем на хост, чтобы иметь прямой доступ и видеть изменения непосредственно во время процесса dev. Но я не хочу предоставлять FTP-доступ непосредственно в контейнере только для данных (FTP небезопасен, и я предпочитаю управлять резервным копированием и данными из бродяг-машины напрямую и удалять отображаемые объемы в процессе производства)

ответ

2

Вы уверены может достичь этого, и это, вероятно, просто недостающей линии

define('FS_METHOD', 'direct'); 

в файле wp-config. Вы должны сначала настроить каждый WordPress за пределами докеревой системы IMHO; а затем импортировать базу данных, файлы WordPress и т. д. в докер, используя Dockerfile (ы) как часть промежуточного развертывания и развертывания, которые должны отличаться от разработки (хотя часть развертывания будет использоваться совместно).

О лучших способах управления я бы не поставил докер внутри бродяг, если это вообще возможно; он добавляет излишнюю сложность на этот этап разработки.Я бы использовал бродягу исключительно, сосредоточиться на том, чтобы мои сценарии подготовки были готовы (поскольку я использую скрипты между бродягой и докером) и работаю через SFTP непосредственно в бродячий бокс; совершая изменения через git. Затем вы можете сосредоточить свои усилия на нужном коде и потянуть то, что вам нужно, когда вам нужно.

После того, как он дошел до стадии тестирования или постановки, я использую сценарии создания сценариев, чтобы помочь мне последовательно строить мою докерную среду (возможно, совместно с некоторыми из кода инициализации). Я могу вытащить конкретный выпуск из своего репо и создать его в образ моего докера, который я смогу развернуть.

Другие альтернативы, если вы действительно хотите развернуть, удалите WordPress, получите доступ к WP-CLI command-line tools, который может устанавливать WordPress, плагины, управлять обновлениями и устанавливать целостность.

+0

Спасибо за ответ! Можете ли вы подробнее рассказать о: я бы использовал бродягу исключительно, сосредоточиться на том, чтобы мои сценарии подготовки были готовы (поскольку я использую скрипты между бродягой и докером) и работаю через SFTP непосредственно в бродячий бокс; совершая изменения через git. Точнее, совершить изменение о чем? изменения в коде? мои готовые сценарии готовы (поскольку я использую скрипты между бродягой и докером) Какие сценарии? – Aaleks

+1

Итак, я бы включил init внутри каждого плагина и папки тем, которые я планировал редактировать. Или git клонирует их, если они уже находятся под контролем источника. Я бы сделал это через SSH (что-либо с SFTP должно также поддерживать SSH, а под Linux и Mac, хосты, которые, я считаю, бродячие ssh, будут соединяться для вас). Что касается фиксации изменений, вы должны использовать SSH и git для того, чтобы выполнить изменения внутри брандмауэра, а также другие теги git, чтобы гарантировать, что вы никогда не загружаете файлы (вместо git commit -am) – MrMesees

+1

Также скрипты I используйте регулярные скрипты оболочки, но иногда, если непослушный кодер забывает, что они сделали, я, как известно, расчесывал файлы истории bash за то, что они сделали (никогда не делает меня счастливым, но он работает) – MrMesees

Смежные вопросы