ฉันจะกำหนดค่า Docker สำหรับการพัฒนาและปรับใช้ธีมที่กำหนดเองได้อย่างไร


12

ฉันเริ่มต้นกับนักเทียบท่าและฉันยังใหม่กับการพัฒนา WordPress อย่างมืออาชีพ ฉันต้องการตั้งค่าสภาพแวดล้อมการพัฒนา Docker (บน Mac ของฉัน) เพื่อให้ฉันสามารถพัฒนาธีม WordPress ที่กำหนดเองได้

สมมติว่าคุณเคยทำสิ่งนี้มาก่อนและใช้ Docker อยู่แล้วคุณตั้งค่านี้ได้อย่างไร Dockerfile และ docker-compose.yml ของคุณมีลักษณะอย่างไร ฉันแน่ใจว่าสิ่งนี้เคยทำมาก่อน ฉันจะไม่แปลกใจถ้ามีคำสั่งบรรทัดเดียวที่สามารถตั้งค่านี้ให้คุณได้

อัปเดต:ฉัน จำกัด หัวข้อนี้ให้แคบลงเป็นคำถามต่อไปนี้

ฉันจะกำหนดค่า Docker สำหรับการพัฒนาและปรับใช้ธีมที่กำหนดเองได้อย่างไร


ฉันแค่ต้องลบลิงก์สองคำตอบเท่านั้น เนื่องจากคำถามของคุณมี 8 upvotes คุณจะ จำกัด ให้แคบลงเหลือหนึ่งคำถามที่แก้ไขได้หรือไม่
ไกเซอร์

@kaiser "การพัฒนา WordPress ระดับมืออาชีพ" ไม่ได้รับการบันทึกไว้เป็นอย่างดีผู้คนจำนวนมาก (รวมถึงตัวฉันเอง) กำลังพยายามเรียนรู้วิธีทำงานกับ WordPress อย่างมืออาชีพในการพัฒนาและปรับใช้ธีม WordPress ที่กำหนดเอง การใช้นักเทียบท่าช่วยในการสร้างสภาพแวดล้อมที่สะท้อนสภาพแวดล้อมการผลิต แต่มันก็เป็นอาณาเขตใหม่ดังนั้นฉันอยากรู้ว่าผู้คนจะรวมนักเทียบท่าเข้ากับกระบวนการพัฒนา WordPress ของพวกเขาได้อย่างไร
Andrew

แอนดรูว์โปรดอ่านข้อความนี้เพื่อดูว่าเราเปิดคำถามประเภทใดในเว็บไซต์นี้ คำถามของคุณเป็นแบบอัตนัยปลายเปิดและดึงดูดความเห็นจากลิงก์หรือคำตอบเท่านั้น โปรดเปลี่ยนสิ่งอื่นเราจะต้องปิดคำถาม ขอบคุณ
ไกเซอร์

@kaiser โอเคฉันพยายามเปลี่ยนสิ่งนี้ให้ดีที่สุดเพื่อเป็นคำถามที่มุ่งเน้นมากขึ้น
Andrew

คำตอบ:


7

ฉันจะโพสต์คำตอบบางส่วนเพื่อเริ่มการสนทนาโดยหวังว่าจะได้รับความคิดเห็นที่เป็นประโยชน์เพื่อเติมคำตอบในช่องว่างหรือคำตอบอื่น ...

ขั้นตอนที่ 1: ติดตั้งและตั้งค่า boot2docker

นักเทียบท่าทำงานบน Linux เท่านั้น ดังนั้นในการใช้ Docker บน Mac ของเราเราจำเป็นต้องติดตั้งboot2dockerซึ่งจะเรียกใช้ Docker ใน Linux VM คุณสามารถติดตั้งboot2dockerโดยใช้Homebrew :

brew install boot2docker

เมื่อติดตั้งเสร็จแล้วให้ตั้งค่าและเริ่ม boot2docker:

boot2docker init
boot2docker start

ต่อไปเราต้องเรียกใช้คำสั่งเพื่อตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างเพื่อให้นักเขียนที่จะรู้ว่าจะพบนักเทียบท่าภายใน boot2docker VM ของเรา

eval "$(boot2docker shellinit)"

คุณอาจต้องการเพิ่มบรรทัดที่ส่งออกตัวแปรไปยังของคุณ~/.bash_profileเพื่อให้คุณไม่ต้องเรียกใช้คำสั่งทุกครั้งที่คุณเปิดหน้าต่างเทอร์มินัลใหม่

ขั้นตอนที่ 2: ติดตั้งนักเทียบท่าเขียน

มีปลั๊กอิน Docker ที่เรียกว่าdocker-compose(แต่เดิมเรียกว่าfig) ซึ่งทำให้ง่ายต่อการกำหนดความสัมพันธ์ระหว่างคอนเทนเนอร์ของนักเทียบท่าของคุณ คุณสามารถติดตั้งโดยใช้ Homebrew:

brew install docker-compose

ขั้นตอนที่ 3: สร้างนักเทียบท่า-compose.yml

มีอิมเมจ WordPress Docker อย่างเป็นทางการในรีจิสทรี 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. มีขั้นตอนใดบ้างที่ฉันพลาดไป? หรือมีขั้นตอนใดบ้างที่ควรเพิ่มเข้าท้าย?


สำหรับคำถามที่สองของคุณ คุณสามารถทดลองใช้พร็อกซี่ Nginx นักเทียบท่า: github.com/jwilder/nginx-proxy
Zhe Li

0

โซลูชันที่ฉันต้องการคือใช้ Composer ร่วมกับ Docker นักเทียบท่าจัดการกับสภาพแวดล้อมนักแต่งเพลงจะจัดการการพึ่งพาซึ่งรวมถึงธีมปลั๊กอินและแพ็คเกจอื่น ๆ ที่ฉันอาจต้องการ

นี่คือการตั้งค่า Docker ท้องถิ่นของฉัน:

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

และนี่คือสาขาที่ใช้นักแต่งเพลงเพื่อดาวน์โหลดธีม _s และวางไว้ในthemesไดเรกทอรีของฉัน:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.