Как настроить Docker для разработки и развертывания собственной темы?

12

Я начинаю с Docker, и я все еще новичок в профессиональной практике разработки WordPress. Я хотел бы настроить среду разработки Docker (на моем Mac), чтобы я мог заниматься разработкой собственной темы WordPress.

Предполагая, что вы делали это раньше и уже используете Docker, как вы это настроили? Как выглядят ваш Dockerfile и docker-compose.yml? Я уверен, что это было сделано раньше. Я не удивлюсь, если уже есть однострочная команда, которая может настроить это для вас.

Обновление: я сузил эту тему до следующего вопроса:

Как настроить Docker для разработки и развертывания собственной темы?

Андрей
источник
Мне просто нужно было удалить два ответа только по ссылке. Поскольку у вашего вопроса 8 голосов, не могли бы вы сузить его до одного вопроса, который можно решить?
Кайзер
@kaiser «Профессиональная разработка WordPress» не очень хорошо задокументирована, поэтому многие люди (включая меня) пытаются научиться профессионально работать с WordPress для разработки и развертывания пользовательских тем WordPress. Использование Docker помогает создать среду, которая отражает производственную среду, но это также новая территория, поэтому я хотел бы знать, как люди включают Docker в свой рабочий процесс разработки WordPress.
Андрей
Эндрю, пожалуйста, взгляните на этот текст, чтобы узнать, какие вопросы мы оставляем открытыми на этом сайте. В своем нынешнем виде ваш вопрос очень субъективный, открытый и привлекает только основанные на мнении или ссылки только ответы. Пожалуйста, измените это, иначе нам придется закрыть вопрос. Благодарю.
Кайзер
@ Кайзер Хорошо, я приложил все усилия, чтобы изменить это, чтобы быть более сфокусированным вопросом.
Андрей

Ответы:

7

Я собираюсь опубликовать частичный ответ, чтобы начать обсуждение в надежде получить некоторые полезные комментарии, чтобы заполнить пробелы или альтернативные ответы ...

Шаг 1: Установите и настройте boot2docker

Docker работает только на Linux. Таким образом, чтобы использовать Docker на нашем Mac, нам нужно установить его boot2docker, который будет запускать Docker на виртуальной машине Linux. Вы можете установить boot2dockerс помощью Homebrew :

brew install boot2docker

После завершения установки настройте и запустите boot2docker:

boot2docker init
boot2docker start

Затем нам нужно запустить команду, чтобы настроить некоторые переменные окружения, чтобы docker-compose узнала, как найти Docker внутри нашей boot2docker VM.

eval "$(boot2docker shellinit)"

Возможно, вы захотите добавить строки, которые экспортируют переменные, ~/.bash_profileчтобы вам не приходилось запускать команду каждый раз, когда вы открываете новое окно терминала.

Шаг 2: Установите docker-compose

Существует плагин Docker, который называется docker-compose(первоначально назывался fig), что позволяет очень легко определить отношения между вашими контейнерами Docker. Вы также можете установить его, используя Homebrew:

brew install docker-compose

Шаг 3: Создайте docker-compose.yml

В реестре Docker есть официальный образ WordPress Docker . Он содержит некоторую информацию о ручном запуске Docker со всеми флагами командной строки, необходимыми для того, чтобы все это работало. Насколько я могу сказать, вы можете пропустить все это, потому что мы будем использовать docker-compose. В каталоге, где вы будете работать над темой WordPress, создайте файл docker-compose.ymlсо следующим содержимым:

wordpress:
  image: wordpress
  links:
    - db:mysql
  ports:
    - 8080:80
  volumes:
    - .:/var/www/html/wp-content/themes/my-theme-name

db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: example

volumesКонфигурации связывают наши файлы тема в нашей текущей директории в новую директорию темы внутри контейнера Докера.

Шаг 4: Запустите контейнеры

Запустите, docker-compose upи вы настроите два Docker-контейнера («wordpress» и «db»), на которых выполняется установка WordPress.

Шаг 5: Откройте сайт в браузере

В нашей docker-compose.ymlконфигурации указано, что мы пересылаем порт 80 на порт 8080. Кроме того, boot2dockerего виртуальная машина запускается по определенному IP-адресу. Таким образом, чтобы выяснить URL, нам нужно использовать boot2docker ipкоманду:

open http://$(boot2docker ip):8080

Вопросов

Теперь, когда у меня есть готовые контейнеры, у меня есть несколько вопросов ...

  1. Существует ли автоматический способ установки переменных среды boot2docker, кроме копирования и вставки экспортов, перечисленных в boot2docker shellinit?

  2. Когда я работаю с приложением Rails, мне нравится использовать Pow, чтобы я мог получить доступ к приложению с помощью именованного .devдомена вместо работы с конкретными портами / IP-адресами. Как я могу настроить свою систему (или Pow) так, чтобы я мог получить доступ к хосту с помощью http://mysite.dev ?

  3. Есть ли какие-то шаги, которые я пропустил? Или есть какие-то шаги, которые следует добавить в конец?

Андрей
источник
На ваш второй вопрос. Вы можете попробовать Docker Nginx Proxy: github.com/jwilder/nginx-proxy .
Же Ли
0

Моим предпочтительным решением для этого является использование Composer в сочетании с Docker. Docker управляет средой, Composer обрабатывает зависимости, которые включают темы, плагины и любые другие пакеты, которые могут мне понадобиться.

Вот моя собственная локальная настройка Docker:

https://github.com/alexmacarthur/wp-skateboard

А вот ветка, которая использует Composer для загрузки темы _s и размещения ее в моем themesкаталоге:

https://github.com/alexmacarthur/wp-skateboard/tree/starter-theme-underscores

Алекс Макартур
источник