WPDock – Môi trường phát triển WordPress đơn giản sử dụng Docker
Ở đây tại WP Git Updater , chúng tôi đang công bố một môi trường phát triển WordPress mới sử dụng Docker!
WordPress đã cung cấp một hình ảnh docker có thể được sử dụng để phát triển, nhưng nó có một số vấn đề không được xử lý theo cách docker thông thường. Chúng tôi chưa bao giờ thực sự tìm ra giải pháp có thể định cấu hình cho những vấn đề này, điều này luôn có nghĩa là sử dụng hình ảnh docker yêu cầu một số bước lặp lại “phải biết” cho mọi thứ mà vùng chứa cần được xây dựng. Hoặc hoàn nguyên để sử dụng máy của nhà phát triển cục bộ php / apache / mysql hoặc một công cụ môi trường dành cho nhà phát triển khác.
Chúng tôi đã sử dụng nhiều công cụ khác và chúng không hoạt động tốt đối với chúng tôi. Một số chỉ tiếp quản các cổng máy chủ mà không cho bạn biết, những người khác không cung cấp tất cả các tính năng chúng tôi cần. WPDock được thiết kế có chủ đích để trở thành một lớp rất mỏng trên docker.
Theo thiết kế, hình ảnh WordPress chỉ là WordPress. Không có hỗ trợ https, bắt thư hoặc truy cập cơ sở dữ liệu. Điều này có nghĩa là lại gây ô nhiễm cho máy phát triển của bạn Công cụ MySql được lựa chọn với nhiều cấu hình kết nối.
Chúng tôi muốn tìm cách chạy ngăn xếp WordPress Docker vì nó là một trường hợp sử dụng hoàn hảo cho docker trong môi trường nhóm / cộng tác. Với Docker Compose, chúng tôi muốn một thiết lập mà bạn có thể chỉ cần “bắt đầu” bao gồm một số công cụ phổ biến được sử dụng để phát triển cục bộ WordPress.
Chúng tôi đặt ra để đạt được những điều sau:
- Một lệnh duy nhất để bắt đầu / dừng toàn bộ môi trường
- Dễ dàng truy cập vào cơ sở dữ liệu MySql
- Thư ra khỏi hộp
- Không có lỗi lặp lại WordPress hoặc kiểm tra tình trạng Rest Api
- Truy cập đơn giản vào
WP-CLI
- HTTPS / hỗ trợ tên miền
- Càng ít ô nhiễm do máy móc phát triển càng tốt
- Chia sẻ cơ sở dữ liệu đơn giản giữa các thành viên trong nhóm
Contents
Nhập WPDock
WPDock là một tập lệnh bash rất đơn giản cung cấp cho bạn tất cả những điều trên. Tất cả những gì bạn cần là docker cho hoạt động cơ bản và nếu bạn muốn hỗ trợ https / tls thì chỉ có 1 mkcert phụ thuộc khác .
Kiểm tra kho lưu trữ và cài đặt hướng dẫn trên Github . WPDock là một tệp thực thi đơn giản mà bạn chỉ cần đặt vào đường dẫn của mình.
Bạn có thể tạo môi trường WPDock bằng lệnh sau:
wpdock init
Thao tác này sẽ tạo một .env
tệp trong thư mục hiện tại của bạn với các biến môi trường cần thiết để hoạt động. Nó cũng sẽ thêm .env
tệp và .wpdock
thư mục vào một tệp gitignore và cuối cùng nó sẽ tạo một .htaccess
tệp ngăn không cho các tệp chấm này có thể truy cập được nếu bạn tải nhầm chúng lên máy chủ.
Sau đó, để chạy toàn bộ ngăn xếp:
wpdock up or wpdock start
Đó là nó!
Với điều này (và tùy thuộc vào những gì bạn đã thay đổi trong .env
tệp. Bạn sẽ có quyền truy cập vào:
- WordPress trên
localhost:8080
- PhpMyAdmin bật
localhost:8181
- Mailhog bắt các email WordPress để xem xét trên
localhost:8282
- MySql đang bật
localhost:33060
Thư mục hiện tại của bạn bị ràng buộc là wp-content
thư mục trên vùng chứa WordPress và WordPress đã được cài đặt sẵn để bạn bắt đầu phát triển.
Hơn nữa, ô nhiễm máy phát triển duy nhất là các cổng bị ràng buộc. WpDock sẽ không sử dụng bất kỳ thứ gì khác ngoài docker và các cổng đó. Điều này là hoàn hảo và cung cấp cho bạn sự linh hoạt để điều chỉnh các biến .env trong một thư mục khác và chạy nhiều phiên bản cùng một lúc!
Điều này cũng tuân theo cấu trúc được đề xuất của WP Git Updaters cho các thiết lập được kiểm soát nguồn WordPress. Với thiết lập này, bạn có thể git init
trong wp-content
thư mục liên kết, bỏ qua thư mục tải lên và tất cả tập hợp của bạn.
Cần truy cập WP-CLI
?
Tất nhiên, chúng tôi cũng đã làm cho điều này đơn giản:
wpdock user list
Bất kỳ lệnh nào không được nhận dạng wpdock
sẽ chuyển qua vùng chứa cli.
Chia sẻ cơ sở dữ liệu giữa các thành viên trong nhóm
Tất nhiên, bạn có thể sử dụng các công cụ thuần thục khác nhau để đồng bộ hóa cơ sở dữ liệu. Nhưng để sử dụng đơn giản , wpdock
cung cấp dump
và import
các lệnh:
wpdock dump # dump.sql will be in your current directory
wpdock import # will import the dump.sql file in your current directory
Môi trường dừng
Ngăn chặn môi trường có thể được thực hiện theo một số cách:
wpdock stop # stops the containers
wpdock down # stops and removes the containers
wpdock destroy # stops and removes the containers + shared volumes
Các lệnh khác
[service]
có thể là một trong số :,,,, wordpress
và cli
( thêm về điều này sau).db
mailhag
phpmyadmin
caddy
wpdock help # displays command help
wpdock file .env # displays the default env variables should you want to create or amend an existing .env file
wpdock exec [service] # eg: wpdock exec wordpress bash
wpdock run [service] … # eg: wpdock run cli bash
wpdock logs [service] # tails all container logs, or pass a service to view specific logs
wpdock compose … # proxy commands directly to docker-compose
wpdock … # is the same as wpdock run cli wp …
Như bạn có thể thấy WPDock là một lớp rất mỏng bên trên các lệnh Docker Compose.
Miền thực có chứng chỉ TLS / HTTPS cục bộ hợp lệ
Phù hợp với các đề xuất của ứng dụng The Twelve Factor về tính chẵn lẻ của Dev / Prod.
Vào năm 2021, thực sự không có lý do gì để không sử dụng TLS ngay cả để phát triển địa phương.
Hơn nữa nếu bạn định sử dụng bất kỳ dạng plugin giỏ hàng nào mà không có TLS, bạn có thể gặp phải một số vấn đề trên http đơn giản.
WPDock cung cấp một tùy chọn đơn giản để kích hoạt các miền tùy chỉnh với https cho môi trường phát triển của bạn.
Hãy cùng xem và cách nó hoạt động:
wpdock up --https
Với lệnh trên và WORDPRESS_SITE_HOST
thiết lập biến .env, bạn có thể phát triển cục bộ với mã hóa TLS đáng tin cậy cho WordPress!
Cái này hoạt động ra sao?
WpDock cần thêm 1 công cụ để cung cấp tính năng này: mkcert .
Mkcert thêm CA đáng tin cậy cục bộ vào máy phát triển của bạn và cho phép bạn tạo chứng chỉ TLS dựa trên CA đó.
Điều này có nghĩa là không còn cảnh báo chứng chỉ không đáng tin cậy nữa.
Đầu tiên hãy cài đặt Mkcert như được nêu chi tiết trong tài liệu của họ. Chạy mkcert -install
một lần để cài đặt CA và để WpDock tiếp quản từ đó.
Khi bạn chạy wpdock up —https
, các bước bổ sung sau được thực hiện.
wpdock
sẽ tạo ra mộtCaddyfile
trong.wpdock
thư mục.wpdock
sẽ tạo chứng chỉ và tệp khóa từWORDPRESS_SITE_HOST
biến env của bạn trong.wpdock/certs
thư mục.- Một vùng chứa máy chủ web caddy mới sẽ được khởi động, với các tệp đã tạo được ánh xạ vào các vị trí chính xác.
Caddy là một máy chủ web siêu đơn giản để sử dụng, hoàn hảo cho những gì wpdock
cần cung cấp hỗ trợ TLS.
Được tạo Caddfyfile
chỉ đơn giản là tạo một proxy ngược từ WORDPRESS_SITE_HOST
đến vùng chứa wordpress
Vùng chứa Caddy cần phải liên kết với các cổng 80
và 443
trên máy phát triển của bạn để cung cấp ánh xạ này.
Bây giờ tất cả những gì bạn cần làm là đảm bảo WORDPRESS_SITE_HOST
trỏ đến 127.0.0.1
thông qua /etc/hosts
tệp của bạn.
Trang web của bạn sẽ có sẵn trên https / tls, tự động chuyển tiếp các yêu cầu http, với một chứng chỉ đáng tin cậy.
Ngoài ra wpdock
, sẽ cập nhật cơ sở dữ liệu của bạn và thay thế các localhost:${PORT}
url bằng tên miền mới.
Khi bạn ngừng môi trường phát triển của mình, mọi thứ đều được dọn dẹp. Cổng 80
và 443
được sử dụng lại miễn phí.
Đi tới Dự án để tìm hiểu cách cài đặt và hơn thế nữa về các lệnh: https://github.com/wpgitupdater/wpdock .
Phản hồi Chào mừng
Chúng tôi hy vọng bạn thích sử dụng WPDock. Đối với chúng tôi, đó là một bổ sung nhỏ nhưng hữu ích cho quy trình phát triển của chúng tôi.
WPDock là mã nguồn mở và có thể được tìm thấy tại https://github.com/wpgitupdater/wpdock . Mọi cải tiến / đề xuất đều được hoan nghênh.
Tại Wp Git Updater, chúng tôi phát triển cục bộ bằng cách sử dụng các máy của Apple, nhưng chúng tôi tin rằng tất cả các lệnh cũng sẽ hoạt động trên môi trường Linux (vui lòng cho chúng tôi biết nếu bạn có bất kỳ vấn đề nào).
Đối với người dùng windows, chúng tôi rất sẵn lòng chấp nhận PR cung cấp hỗ trợ nếu nó có thể đạt được.
Hãy chú ý theo dõi, trong một vài bài viết tiếp theo, chúng tôi sẽ trình bày chi tiết hơn một số tính năng và hiển thị cho bạn một thiết lập tự động phân giải tld đã chọn của bạn thành localhost bằng DNSMasq.