Làm cách nào tôi có thể định cấu hình Docker để phát triển và triển khai một chủ đề tùy chỉnh?


12

Tôi đang bắt đầu với Docker và tôi vẫn chưa quen với các thực tiễn phát triển WordPress chuyên nghiệp. Tôi muốn thiết lập môi trường phát triển Docker (trên máy Mac của tôi) để tôi có thể thực hiện phát triển chủ đề WordPress tùy chỉnh.

Giả sử bạn đã làm điều này trước đây và đã sử dụng Docker, bạn đã thiết lập nó như thế nào? Dockerfile và docker-compose.yml của bạn trông như thế nào? Tôi chắc chắn rằng điều này đã được thực hiện trước đây. Tôi sẽ không ngạc nhiên nếu đã có lệnh một dòng có thể thiết lập lệnh này cho bạn.

Cập nhật: Tôi đã thu hẹp chủ đề này xuống câu hỏi sau:

Làm cách nào tôi có thể định cấu hình Docker để phát triển và triển khai một chủ đề tùy chỉnh?


Tôi chỉ cần xóa hai liên kết chỉ có câu trả lời. Khi câu hỏi của bạn có 8 câu hỏi, bạn có phiền khi thu hẹp nó thành một câu hỏi có thể giải được không?
kaiser

@kaiser "Phát triển WordPress chuyên nghiệp" không được ghi chép rõ ràng, vì vậy nhiều người (bao gồm cả tôi) đang cố gắng học cách làm việc với WordPress theo cách chuyên nghiệp để phát triển và triển khai các chủ đề WordPress tùy chỉnh. Sử dụng Docker giúp tạo ra một môi trường phản ánh môi trường sản xuất, nhưng đó cũng là lãnh thổ mới, vì vậy tôi muốn biết mọi người đang kết hợp Docker vào quy trình phát triển WordPress của họ như thế nào.
Andrew

Andrew, xin vui lòng xem văn bản này để xem loại câu hỏi nào chúng tôi tiếp tục mở trên trang web này. Vì nó đứng, câu hỏi của bạn rất chủ quan, kết thúc mở và chỉ thu hút ý kiến ​​dựa trên hoặc chỉ liên kết câu trả lời. Hãy thay đổi điều đó, nếu không chúng tôi sẽ phải đóng câu hỏi. Cảm ơn.
kaiser

@kaiser Được rồi, tôi đã cố gắng hết sức để thay đổi điều này thành một câu hỏi tập trung hơn.
Andrew

Câu trả lời:


7

Tôi sẽ đăng một câu trả lời một phần để bắt đầu cuộc thảo luận với hy vọng nhận được một số bình luận hữu ích để điền vào chỗ trống hoặc câu trả lời thay thế ...

Bước 1: Cài đặt và Thiết lập boot2docker

Docker chỉ chạy trên Linux. Vì vậy, để sử dụng Docker trên máy Mac của chúng tôi, chúng tôi cần cài đặt boot2docker, nó sẽ chạy Docker trong máy ảo Linux. Bạn có thể cài đặt boot2dockerbằng Homebrew :

brew install boot2docker

Sau khi cài đặt xong, hãy thiết lập và bắt đầu boot2docker:

boot2docker init
boot2docker start

Tiếp theo, chúng ta cần chạy một lệnh để thiết lập một số biến môi trường để docker-compose sẽ biết để tìm Docker bên trong VM boot2docker của chúng ta.

eval "$(boot2docker shellinit)"

Bạn có thể muốn thêm các dòng xuất các biến vào ~/.bash_profileđể bạn không phải chạy lệnh mỗi khi bạn mở một cửa sổ đầu cuối mới.

Bước 2: Cài đặt docker-compose

Có một plugin Docker được gọi docker-compose(ban đầu được gọi fig) giúp cho việc xác định mối quan hệ giữa các container Docker của bạn thực sự dễ dàng. Bạn cũng có thể cài đặt nó bằng Homebrew:

brew install docker-compose

Bước 3: Tạo docker-compose.yml

Có một hình ảnh Docker WordPress chính thức trong sổ đăng ký Docker. Nó bao gồm một số thông tin về việc khởi động Docker bằng tay với tất cả các cờ dòng lệnh cần thiết để làm cho tất cả hoạt động. Theo như tôi có thể nói, bạn có thể bỏ qua tất cả điều đó bởi vì chúng tôi sẽ sử dụng docker-compose. Trong thư mục nơi bạn sẽ làm việc với chủ đề WordPress của mình, hãy tạo một docker-compose.ymlnội dung sau:

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

Các volumescấu hình liên kết các file theme của chúng tôi trong thư mục hiện hành của chúng tôi vào một thư mục chủ đề mới bên trong chứa Docker.

Bước 4: Bắt đầu các container

Chạy docker-compose upvà bạn sẽ thiết lập hai thùng chứa Docker ("wordpress" và "db") đang chạy cài đặt WordPress.

Bước 5: Mở trang web trong trình duyệt

docker-compose.ymlCấu hình của chúng tôi đã chỉ định rằng chúng tôi đang chuyển tiếp cổng 80 sang cổng 8080. Ngoài ra, boot2dockerchạy VM của nó trên một địa chỉ IP cụ thể. Do đó, để tìm ra URL, chúng ta cần sử dụng boot2docker iplệnh:

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

Câu hỏi

Bây giờ tôi có các container và chạy, tôi có một vài câu hỏi ...

  1. Có cách nào tự động để thiết lập các biến môi trường boot2docker, ngoài việc sao chép và dán các bản xuất được liệt kê trong boot2docker shellinitkhông?

  2. Khi tôi đang làm việc trên một ứng dụng Rails, tôi muốn sử dụng Pow để tôi có thể truy cập ứng dụng bằng một tên .devmiền được đặt tên thay vì làm việc với các cổng / IP cụ thể. Làm cách nào tôi có thể định cấu hình hệ thống của mình (hoặc Pow) để tôi có thể truy cập máy chủ bằng cách sử dụng http://mysite.dev ?

  3. Có bất kỳ bước mà tôi bỏ lỡ? Hoặc có bất kỳ bước nào cần được thêm vào cuối?


Đối với câu hỏi thứ hai của bạn. Bạn có thể dùng thử proxy nginx docker : github.com/jwilder/nginx-proxy .
Zhe Li

0

Giải pháp ưa thích của tôi cho việc này là sử dụng Trình soạn thảo kết hợp với Docker. Docker xử lý môi trường, Trình soạn thảo xử lý các phụ thuộc, bao gồm các chủ đề, plugin và bất kỳ gói nào khác mà tôi có thể cần.

Đây là thiết lập Docker cục bộ của riêng tôi:

https://github.com/alexmacarthur/wp-sk Tấm

Và đây là một nhánh sử dụng Trình soạn thảo để tải xuống chủ đề _s và đặt nó trong themesthư mục của tôi :

https://github.com/alexmacarthur/wp-sk Tấm / tree / starter-theme -underscores

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.