Cách thiết lập máy của bạn để sử dụng Docker và WordPress
Khi xây dựng một trang web bằng WordPress, thường thì bạn sẽ muốn có một môi trường phát triển để làm việc trước khi chuyển sang sản xuất. Có một số cách khác nhau để đạt được mục tiêu này. Trong bài viết này, chúng ta sẽ xem cách thiết lập WordPress bằng docker. Bài viết này sẽ cho rằng bạn đã quen thuộc với WordPress và sử dụng máy Mac hoặc Windows. Nếu bạn không quen với WordPress, vui lòng xem wordpress.org để biết thêm chi tiết.
Docker là gì?
LƯU Ý : Nếu bạn đã quen với Docker, bạn có thể bỏ qua bước này.
Đầu tiên chúng ta hãy nói sơ qua về docker là gì. Theo trang web docker :
Docker là một nền tảng mở để phát triển, vận chuyển và chạy các ứng dụng. Docker cho phép bạn tách các ứng dụng khỏi cơ sở hạ tầng để bạn có thể phân phối phần mềm một cách nhanh chóng. Docker cung cấp khả năng đóng gói và chạy một ứng dụng trong một môi trường cô lập lỏng lẻo được gọi là vùng chứa .
Tôi đã tô đậm từ này container
bởi vì điều đáng chú ý là docker
bản thân nó không phải là một thùng chứa. Nó cung cấp phương tiện để chạy các thùng chứa (nhiều hơn về các thùng chứa bên dưới). Bạn sẽ thường xuyên bắt gặp docker được nói đến như thể nó là một container. Một lý do cho điều này là:
Do sự phổ biến và sự phát triển bùng nổ của Docker trong cộng đồng, nó đã trở thành đồng nghĩa với các thùng chứa. Thuật ngữ “docker” có thể đề cập đến toàn bộ phần mềm, ứng dụng dòng lệnh, công ty hoặc thay thế cho từ “container”.
Một người bạn của tôi, Rob Sigrest (tìm hiểu thêm về anh ấy trên trang github của anh ấy ) đã thuyết trình và đưa ra kết luận ở trên với kinh nghiệm của anh ấy trong ngành.
Contents
Thùng đựng hàng
LƯU Ý : Nếu bạn đã quen với vùng chứa là gì, bạn có thể bỏ qua bước này.
Bây giờ chúng ta đã biết docker là phần mềm có thể chạy một container, container là gì? Theo trang web docker :
Vùng chứa là một đơn vị tiêu chuẩn của phần mềm đóng gói mã và tất cả các phụ thuộc của nó để ứng dụng chạy nhanh chóng và đáng tin cậy từ môi trường máy tính này sang môi trường máy tính khác.
Nói một cách đơn giản nhất, một vùng chứa cho phép bạn chạy mã ứng dụng được tách biệt với mã khác trên hệ thống của bạn. Điều này giúp loại bỏ nhu cầu cài đặt tất cả các phụ thuộc cần thiết vào máy cục bộ của bạn. Ví dụ, như chúng ta sẽ thấy ở phần sau, tôi sử dụng docker để chạy WordPress mà không cần phải cài đặt tất cả các phụ thuộc mà WordPress yêu cầu như apache, php và MySQL.
Một lợi ích chính mà Rob đề cập trong bài thuyết trình của mình là hình ảnh vùng chứa có thể chạy trên bất kỳ nền tảng nào với thời gian chạy vùng chứa tương thích. Vì vậy, ví dụ: bạn có thể chạy các vùng chứa đang được sản xuất trên hệ thống Linux nhưng phát triển chúng bằng cách sử dụng cùng thời gian chạy vùng chứa (như Docker) trên Windows hoặc Mac.
Cài đặt Docker
Bây giờ chúng ta đã có các định nghĩa, hãy đến với phần thú vị, cài đặt docker và chạy WordPress.
LƯU Ý : Nếu bạn đã cài đặt docker, bạn có thể bỏ qua bước này.
- Tải xuống và cài đặt docker desktop tại đây
- Thực hiện theo các hướng dẫn tất cả các cách thông qua. Tại một số điểm trong quá trình cài đặt, nó sẽ yêu cầu bạn nhập mật khẩu hệ thống của bạn. Bạn sẽ cần cung cấp cho docker mật khẩu của mình vì docker cần quyền cao hơn để thực hiện một số tác vụ.
Ghi chú bên lề:
Khi máy tính để bàn docker được cài đặt, nó sẽ cài đặt một công cụ có tên docker-compose
. Điều này rất quan trọng vì chúng tôi sẽ sử dụng điều này để chạy các vùng chứa của chúng tôi.
Soạn là một công cụ để xác định và chạy các ứng dụng Docker nhiều vùng chứa. Với Soạn thư, bạn sử dụng tệp YAML để định cấu hình các dịch vụ của ứng dụng. Sau đó, với một lệnh duy nhất, bạn tạo và khởi động tất cả các dịch vụ từ cấu hình của mình. – Trang web Docker
Thiết lập WordPress
Bây giờ chúng ta đã có docker
và docker-compose
cài đặt, hãy bắt đầu và chạy WordPress.
LƯU Ý : Nếu bạn đã có một vị trí mà bạn muốn tạo các dự án của mình, bạn có thể bỏ qua các bước 1-3 và điều hướng đến thư mục đó.
- Mở thiết bị đầu cuối của bạn và nhập lệnh sau:Mac
cd ~/
các cửa sổ
cd %userprofile%
Lệnh trên sẽ thay đổi thư mục ( cd
) thành thư mục chính của chúng ta
- Tạo thư mục Dự án
mkdir Projects
Lệnh trên sẽ tạo một thư mục (
mkdir
) được gọiProjects
trong thư mục chính của chúng ta. - Thay đổi thư mục thành Dự án
cd Projects
- Tạo thư mục WordPress bên trong
Projects
thư mụcmkdir wordpress
- Thay đổi thư mục thành WordPress
cd wordpress
Để xác nhận thiết bị đầu cuối của bạn sẽ trông giống như sau:
- Mở
wordpress
thư mục trong trình soạn thảo văn bản của bạn. Tôi đang sử dụng VS Code. - Tạo một tệp có tên
docker-compose.yaml
và nhập các nội dung dưới đây:LƯU Ý : Điều quan trọng là tệp được gọidocker-compose.yaml
nếu khôngdocker-compose
sẽ không hoạt động.Tệp nguồn từ github của Brad Traversy
version: '3' services: # Database db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress networks: - wpsite # phpmyadmin phpmyadmin: depends_on: - db image: phpmyadmin/phpmyadmin restart: always ports: - '8080:80' environment: PMA_HOST: db MYSQL_ROOT_PASSWORD: password networks: - wpsite # WordPress wordpress: depends_on: - db image: wordpress:latest ports: - '8000:80' restart: always volumes: ['./:/var/www/html'] environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress networks: - wpsite networks: wpsite: volumes: db_data:
Trình soạn thảo văn bản của bạn sẽ trông giống như sau:
Tệp trên
docker-compose.yaml
sẽ kéo ba vùng chứaMySQL
:,phpmyadmin
vàWordPress
.LƯU Ý PHỤ:
Tôi sẽ không giải thích tất cả các thuộc tính ở đây, tuy nhiên tôi muốn dành một phút để giải thích về
volumes
và thuộcports
tính.Khi chúng tôi chỉ định
volumes: ['./:/var/www/html']
, điều này có nghĩa là docker sẽ gắn thư mục hệ thống cục bộ của chúng tôi.
, nghĩa là thư mục hiện tại của chúng tôi (trong trường hợp của chúng tôiwordpress
), vào/var/www/html
bên trong vùng chứa./var/www/html
là nơi mã nguồn cho WordPress được lưu trữ trong vùng chứa. Điều này sẽ cho phép chúng tôi phát triển plugin hoặc chủ đề của mình trên máy cục bộ của chúng tôi và có sẵn cho vùng chứa.Khi chúng tôi chỉ định
'8000:80'
trong cácports
phần của cấu hình, chúng tôi đang nói với docker ánh xạ cổng hệ thống cục bộ của chúng tôi8000
với cổng container80
. Cổng80
trong vùng chứa là cổng mà WordPress của chúng ta đang chạy. Tuy nhiên, chúng tôi muốn có thể truy cập điều này trên máy cục bộ của mình, vì vậy chúng tôi cần ánh xạ một cổng từ máy cục bộ của mình đến cổng vùng chứa đang chạy trang web.Bạn có thể tìm hiểu thêm về từng thuộc tính này tại trang web của dockers .
- Hãy quay lại thiết bị đầu cuối và điều hướng đến thư mục của chúng
wordpress
tôiNgười dùng Maccd ~/Projects/wordpress
Người dùng Windows
cd %userprofile%\Projects\wordpress
- Bây giờ chúng ta đã ở trong thư mục
wordpress
của mình, hãy bắt đầu các vùng chứa của chúng tadocker-compose up -d
Bước này có thể mất vài phút vì docker sẽ cần lấy tất cả các hình ảnh ở trên khỏi
docker-compose.yaml
tệp của chúng tôi. Bạn cũng sẽ thấy đầu ra trong thiết bị đầu cuối trông giống như sau:Bây giờ bạn sẽ bắt đầu thấy các tệp và thư mục được thêm vào thư mục
wordpress
.Lệnh trên sẽ bắt đầu các vùng chứa trong
detached mode
đó, có nghĩa là nó sẽ chạy ở chế độ nền và bạn có thể đóng thiết bị đầu cuối của mình nếu muốn khi nó đã hoàn tất tất cả các quá trình tải xuống.Tại thời điểm này, chúng tôi sẽ có thể truy cập trang web WordPress của mình tại
http://localhost:8000
và phpmyadmin tạihttp://localhost:8080
.Chọn ngôn ngữ bạn muốn sử dụng và nhấp vào
Continue
.Điền vào chi tiết trang web của bạn và nhấp vào
Install WordPress
.THÀNH CÔNG!
Xin chúc mừng bạn hiện đã cài đặt WordPress bằng Docker! Bạn có thể xây dựng các plugin và chủ đề của mình như bình thường bên trong
wordpress/wp-content/
thư mục.
Dừng vùng chứa WordPress
Khi chúng tôi đã hoàn tất việc xây dựng trang web của mình và chúng tôi không cần các vùng chứa của mình chạy nữa, có hai cách để đạt được điều này.
- Điều hướng đến
~/Projects/wordpress
trong thiết bị đầu cuối của bạn và nhập lệnh bên dưới nếu bạn muốn dừng các vùng chứa đang chạy, nhưng muốn lưu tất cả dữ liệu được liên kết với trang web của bạn.docker-compose down
- Điều hướng đến
~/Projects/wordpress
trong thiết bị đầu cuối của bạn và nhập lệnh bên dưới nếu bạn muốn dừng các vùng chứa đang chạy và xóa tất cả dữ liệu được liên kết với trang web của bạn.docker-compose down --volumes
Sự kết luận
Có một số cách để bạn có thể làm cho WordPress chạy cục bộ, tuy nhiên, tôi nhận thấy việc sử dụng Docker làm cho nó dễ dàng hơn. Tôi có thể tin tưởng vào thực tế là tất cả các phụ thuộc phù hợp sẽ được sử dụng và tôi không phải cài đặt các ứng dụng cụ thể trên máy của mình. Nếu bạn muốn tìm hiểu thêm về những công cụ và ứng dụng tôi sử dụng để phát triển, hãy xem bài viết Thiết lập máy phát triển web của tôi .