it-swarm.com.ru

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

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

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

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

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

12
Andrew

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

Шаг 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 связывает наши файлы тем в нашем текущем каталоге с новым каталогом тем внутри контейнера Docker.

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

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

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

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

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

Вопросы

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

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

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

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

7
Andrew

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

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

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

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

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

0
Alex MacArthur