Xây dựng hình ảnh Docker php

Trong số nhiều thách thức trong phát triển phần mềm hiện đại là đảm bảo rằng ứng dụng hoạt động nhất quán trên mọi môi trường.

Đây là nơi Docker đến để giải cứu. Nó cung cấp một cách thống nhất để xây dựng và chạy các container cho bất kỳ dịch vụ cần thiết nào. Nền tảng đảm bảo rằng ứng dụng của bạn được triển khai trên bất kỳ Dịch vụ lưu trữ web nào dành cho PHP đều hoạt động như nhau bất kể môi trường mục tiêu

Để minh họa cách Dockerize ứng dụng PHP, tôi sẽ dockerize một trang web viết blog, ban đầu được phát triển trong Laravel 5. 4

Bạn cũng có thể thích. Bắt đầu với Laravel 5. 4

Đối với điều này, hãy đảm bảo rằng bạn đã thiết lập Docker trên máy. Tôi sẽ làm việc với docker-compose, giúp dễ dàng triển khai ứng dụng nhiều vùng chứa bằng cách xác định chúng trong một tệp và thực hiện một lệnh đơn giản

Có liên quan. Cách lưu trữ PHP trên Kyup Container

Trong thư mục gốc của dự án, tạo một tệp và đặt tên là docker-compose. yml. Mã trong tệp sẽ giống như

Xây dựng hình ảnh Docker php

Docker-soạn thảo. yml Giải thích

Trong mã này, hai dịch vụ có tên php và db được xác định, hai dịch vụ này sẽ kết nối để chạy ứng dụng cuối cùng

'build' xác định vị trí của Dockerfile của dịch vụ được tôn trọng

'âm lượng' gắn kết thư mục dự án dưới dạng một ổ đĩa trên vùng chứa tại /var/www/html. Một thư mục nhật ký cũng được gắn trong thư mục tương ứng

Bộ chứa php hiển thị cổng 8000 của máy và liên kết với cổng 80 của bộ chứa. Điều này sẽ cho phép truy cập vào ứng dụng

'môi trường' được sử dụng để đưa vào các biến môi trường

Hãy nhớ rằng tôi có thể buộc Docker xây dựng một vùng chứa trước một vùng chứa khác bằng cách chỉ định tùy chọn phụ thuộc vào. Tuy nhiên, trong trường hợp này, bộ chứa db sẽ được tạo trước vì bộ chứa php phụ thuộc vào nó

Khi tệp docker-compose đã được tạo, tiếp theo tôi sẽ tạo các tệp docker tương ứng   chứa tất cả các hướng dẫn để xây dựng hình ảnh vùng chứa

Chuyển đến thư mục Docker và tạo hai thư mục cho bộ chứa php và db

Hai dockerfiles sẽ giống như.  

Ngừng lãng phí thời gian trên máy chủ

Cloudways xử lý việc quản lý máy chủ cho bạn để bạn có thể tập trung vào việc tạo các ứng dụng tuyệt vời và giữ cho khách hàng của mình hài lòng

php Dockerfile

Xây dựng hình ảnh Docker php

Tệp bắt đầu bằng định nghĩa của ảnh cơ sở (trong trường hợp này là tệp PHP 5. 6 hình ảnh cơ sở). Bạn có thể dễ dàng thiết lập hình ảnh cơ sở mong muốn tùy thuộc vào nhu cầu của ứng dụng của bạn. Tiếp theo, tôi đã sao chép một số tệp vào vùng chứa

Bạn cũng có thể thích. Cách nâng cấp từ PHP 5. X sang PHP 7

db Dockerfile

Trong dockerfile này, tôi đã sử dụng MySQL 5. 6 làm hình ảnh cơ bản. Khi một vùng chứa được khởi tạo, một cơ sở dữ liệu mới có tên đã chỉ định sẽ được tạo. Tôi cũng đã bao gồm tệp kết xuất SQL của cơ sở dữ liệu sẽ được thực thi ngay khi máy chủ được tạo (vì vị trí của nó trong /docker-entrypoint-initdb. đ)

Khi tất cả các tệp đã được tạo, hãy chuyển đến thư mục gốc của ứng dụng và chạy lệnh sau

docker-compose up -d

Lệnh này sẽ khởi động các thùng chứa trong nền. Lần đầu tiên khởi chạy có thể chậm vì phải tải xuống tất cả các hình ảnh cơ sở. Tuy nhiên, tất cả các lần ra mắt tiếp theo nhanh hơn nhiều

Lưu ý rằng tôi cũng đã sao chép tệp máy chủ (có văn bản sau) trong vùng chứa

127.0.0.1 blogsite.com

Bây giờ, bạn có thể truy cập ứng dụng bằng cách truy cập http. //máy chủ cục bộ. 8000. Vì tôi cũng đã sao chép tệp máy chủ của mình trong vùng chứa, tôi cũng có thể truy cập ứng dụng bằng cách truy cập URL, http. // trang blog. com

Xây dựng hình ảnh Docker php

Bạn có thể xem các vùng chứa đang hoạt động của mình thông qua lệnh này

docker ps

Đây là một đầu ra mẫu

Xây dựng hình ảnh Docker php

Bạn cũng có thể truy cập vùng chứa thông qua

docker exec -it  bash

Thấy. Dockerize ứng dụng PHP đơn giản như thế nào. Do trọng lượng nhẹ, nó có thể dễ dàng bị phá hủy và tạo lại chỉ trong tích tắc

Đánh giá của khách hàng tại

Xây dựng hình ảnh Docker php

“Dịch vụ lưu trữ trên nền tảng đám mây có một trong những dịch vụ khách hàng tốt nhất và tốc độ lưu trữ”

Sanjit C [Nhà phát triển trang web]

Ali Azmi

Ali Azmi là Kỹ sư DevOps liên kết tại Cloudways - Nền tảng lưu trữ đám mây PHP được quản lý. Anh ấy có kỹ năng phát triển các ứng dụng PHP, đặc biệt là trong Laravel. Anh ấy đam mê đóng góp cho các dự án mã nguồn mở