Jak skonfigurować Docker do opracowywania i wdrażania niestandardowego motywu?

12

Zaczynam pracę z Dockerem i wciąż jestem nowy w profesjonalnych praktykach programistycznych WordPress. Chciałbym skonfigurować środowisko programistyczne Docker (na moim komputerze Mac), aby móc tworzyć niestandardowe szablony WordPress.

Zakładając, że zrobiłeś to wcześniej i już korzystasz z Dockera, jak to skonfigurowałeś? Jak wygląda Twój plik Dockerfile i docker-compose.yml? Jestem pewien, że już to zrobiono. Nie zdziwiłbym się, gdyby istniało już jedno-wierszowe polecenie, które może to dla ciebie skonfigurować.

Aktualizacja: zawęziłem ten temat do następującego pytania:

Jak skonfigurować Docker do opracowywania i wdrażania niestandardowego motywu?

Andrzej
źródło
Musiałem tylko usunąć dwie odpowiedzi tylko z linkiem. Skoro twoje pytanie ma 8 głosów pozytywnych, czy mógłbyś zawęzić je do jednego pytania, które można rozwiązać?
kaiser
@kaiser „Profesjonalne tworzenie WordPress” nie jest zbyt dobrze udokumentowane, więc wiele osób (w tym ja) próbuje nauczyć się, jak pracować z WordPress w profesjonalny sposób, aby opracować i wdrożyć niestandardowe motywy WordPress. Korzystanie z Dockera pomaga stworzyć środowisko, które odzwierciedla środowisko produkcyjne, ale jest to także nowe terytorium, dlatego chciałbym wiedzieć, w jaki sposób ludzie włączają Docker do swojego przepływu pracy nad programowaniem WordPress.
Andrew
Andrew, spójrz na ten tekst, aby zobaczyć, jakie pytania zadajemy na tej stronie. W tej chwili twoje pytanie jest bardzo subiektywne, otwarte i przyciąga tylko odpowiedzi oparte na opiniach lub tylko link. Zmień to, w przeciwnym razie będziemy musieli zamknąć pytanie. Dzięki.
kaiser
@kaiser Okay, dołożyłem wszelkich starań, aby zmienić to na bardziej ukierunkowane pytanie.
Andrew

Odpowiedzi:

7

Zamierzam opublikować częściową odpowiedź, aby rozpocząć dyskusję w nadziei na otrzymanie pomocnych komentarzy w celu wypełnienia pustych pól lub alternatywnych odpowiedzi ...

Krok 1: Zainstaluj i skonfiguruj boot2docker

Docker działa tylko w systemie Linux. Aby więc używać Dockera na naszym Macu, musimy zainstalować boot2docker, który uruchomi Dockera na maszynie wirtualnej z systemem Linux. Możesz zainstalować boot2dockerza pomocą Homebrew :

brew install boot2docker

Po zakończeniu instalacji skonfiguruj i uruchom boot2docker:

boot2docker init
boot2docker start

Następnie musimy uruchomić polecenie, aby skonfigurować niektóre zmienne środowiskowe, tak aby docker-compose wiedział, że znajdzie Docker w naszej maszynie wirtualnej boot2docker.

eval "$(boot2docker shellinit)"

Możesz dodać linie, które eksportują zmienne do twojego ~/.bash_profile, abyś nie musiał uruchamiać polecenia za każdym razem, gdy otwierasz nowe okno terminala.

Krok 2: Zainstaluj komponent dokujący

Istnieje wtyczka Docker o nazwie docker-compose(pierwotnie nazywana fig), która naprawdę ułatwia zdefiniowanie relacji między kontenerami Docker. Możesz go również zainstalować za pomocą Homebrew:

brew install docker-compose

Krok 3: Utwórz docker-compose.yml

W rejestrze Dockera znajduje się oficjalny obraz WordPress Docker . Zawiera informacje na temat ręcznego uruchamiania Dockera ze wszystkimi flagami wiersza poleceń niezbędnymi do tego, aby wszystko działało. O ile mogę stwierdzić, możesz pominąć to wszystko, ponieważ będziemy używać docker-compose. W katalogu, w którym będziesz pracować nad motywem WordPress, utwórz plik docker-compose.ymlz następującą zawartością:

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

volumesKonfiguracja łączy nasze pliki tematem naszego aktualnego katalogu do nowego katalogu tematycznego wewnątrz pojemnika Docker.

Krok 4: Uruchom pojemniki

Uruchom, docker-compose upa skonfigurujesz dwa kontenery Docker („wordpress” i „db”) z uruchomioną instalacją WordPress.

Krok 5: Otwórz witrynę w przeglądarce

Nasza docker-compose.ymlkonfiguracja określiła, że ​​przekierowujemy port 80 na port 8080. Ponadto boot2dockeruruchamia swoją maszynę wirtualną na określonym adresie IP. Dlatego w celu ustalenia adresu URL musimy użyć boot2docker ippolecenia:

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

pytania

Teraz, gdy mam już uruchomione pojemniki, mam kilka pytań ...

  1. Czy istnieje zautomatyzowany sposób konfigurowania zmiennych środowiskowych boot2docker, inny niż kopiowanie i wklejanie wymienionych eksportów boot2docker shellinit?

  2. Kiedy pracuję nad aplikacją Railsową, lubię używać Pow, aby uzyskać dostęp do aplikacji przy użyciu nazwanej .devdomeny zamiast pracy z określonymi portami / adresami IP. Jak mogę skonfigurować mój system (lub Pow), aby uzyskać dostęp do hosta za pomocą http://mysite.dev ?

  3. Czy są jakieś kroki, które przegapiłem? Czy są jakieś kroki, które należy dodać na końcu?

Andrzej
źródło
Na twoje drugie pytanie. Możesz wypróbować docker proxy nginx: github.com/jwilder/nginx-proxy .
Zhe Li
0

Moim preferowanym rozwiązaniem jest użycie Composer w połączeniu z Docker. Docker obsługuje środowisko, Composer obsługuje zależności, w tym kompozycje, wtyczki i wszelkie inne potrzebne mi pakiety.

Oto moja lokalna konfiguracja Dockera:

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

A oto gałąź, która używa Composera do pobrania motywu _s i umieszczenia go w moim themeskatalogu:

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

Alex MacArthur
źródło