Як я можу налаштувати Docker для розробки та розгортання власної теми?


12

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

Якщо припустити, що ви робили це раніше і вже використовуєте Docker, як ви це налаштували? Як виглядає ваш Dockerfile та docker-compose.yml? Я впевнений, що це робилося і раніше. Я не здивуюсь, якщо вже є однорядкова команда, яка може налаштувати це для вас.

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

Як я можу налаштувати Docker для розробки та розгортання власної теми?


Мені просто довелося видалити дві відповіді лише за посиланням. Оскільки у вашому запитанні є 8 відгуків, ви не хотіли б обмежити його до одного питання, яке можна вирішити?
кайзер

@kaiser "Професійна розробка WordPress" не дуже добре задокументована, тому багато людей (включаючи мене) намагаються навчитися професійно працювати з WordPress для розробки та розгортання користувальницьких тем WordPress. Використання Docker допомагає створити середовище, яке відображає виробниче середовище, але це також нова територія, тому я хотів би знати, як люди включають Docker у робочий процес розвитку WordPress.
Андрій

Ендрю, погляньте на цей текст, щоб побачити, які питання ми відкриваємо на цьому веб-сайті. На сьогоднішній день ваше запитання є дуже суб'єктивним, відкритим і приваблює лише відповіді на основі думки або посилання. Будь ласка, змініть це, інакше нам доведеться закрити питання. Дякую.
кайзер

@kaiser Гаразд, я зробив найкращу спробу змінити це на більш зосереджене питання.
Андрій

Відповіді:


7

Я збираюся розмістити часткову відповідь, щоб розпочати дискусію, сподіваючись отримати корисні коментарі, щоб заповнити пробіли або альтернативні відповіді ...

Крок 1: Встановлення та налаштування boot2docker

Докер працює лише в Linux. Отже, щоб використовувати Docker на нашому Mac, нам потрібно встановити boot2docker, який запустить Docker в Linux VM. Ви можете встановити boot2dockerза допомогою Homebrew :

brew install boot2docker

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

boot2docker init
boot2docker start

Далі нам потрібно запустити команду, щоб встановити деякі змінні середовища, щоб docker-compose знав знайти Docker всередині нашого VM boot2docker.

eval "$(boot2docker shellinit)"

Ви можете додати рядки, які експортують змінні у ваш, ~/.bash_profileщоб вам не довелося запускати команду щоразу, коли ви відкриваєте нове вікно терміналу.

Крок 2: Встановіть докер-композицію

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

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

Запитання

Тепер, коли у мене є контейнери та працює, у мене є кілька питань ...

  1. Чи існує автоматизований спосіб налаштування змінних середовища boot2docker, окрім копіювання та вставлення експорту, переліченого в boot2docker shellinit?

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

  3. Чи є якісь кроки, які я пропустив? Або є якісь дії, які слід додати до кінця?


Для вашого другого питання. Ви можете спробувати проксі-докер nginx: 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.