Intereting Posts

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

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

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

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

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

Solutions Collecting From Web of "Как настроить Docker для разработки и развертывания пользовательской темы?"

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

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

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

 brew install boot2docker 

Как только он завершит установку, настройте и запустите boot2docker:

 boot2docker init boot2docker start 

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

 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 по теме 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 запускает свою виртуальную boot2docker на определенном IP-адресе. Таким образом, чтобы выяснить URL-адрес, нам нужно использовать команду boot2docker ip :

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

Вопросов

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

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

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

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