Cài đặt dockerfile php 7.1
Bắt đầu với PHP 7. 4, PEAR bị tắt theo mặc định, điều đó có nghĩa là PECL không còn khả dụng để cài đặt tiện ích mở rộng. Có một số lý do cho quyết định đó, vì vậy chúng ta sẽ phải làm. Tôi mất vài giờ để cập nhật Dockerfile của mình và thay thế lệnh gọi PECL bằng cài đặt thủ công, thao tác MongoDB đó khá phức tạp. Tôi đã viết bài viết này vì tôi muốn chơi với PHP 7. 4 nhưng gặp khó khăn khi cài đặt tiện ích mở rộng. Tôi hy vọng nó sẽ giúp được gì đó Show
CHỈNH SỬA. Tôi nghĩ rằng tôi đã tìm thấy một giải pháp đơn giản hơn bằng cách sử dụng các gói PECL Dockerfile ban đầu, với PECLĐây là Dockerfile của hình ảnh cơ sở của một trong các dịch vụ của tôi. Nó sẽ là điểm khởi đầu của chúng tôi. Chúng tôi có một loạt các tiện ích mở rộng trong đó. Một số đi kèm với PHP như 3 hoặc 4. Một số cần được cài đặt thủ công như 5, 6 hoặc 7
Tập lệnh có sẵn trong hình ảnh dockerTrước khi bắt đầu, hãy xem tổng quan nhanh về các tập lệnh có sẵn trong hình ảnh Docker Trước tiên, chúng tôi có 0, trích xuất nguồn PHP cần thiết để xây dựng các tiện ích mở rộng và cũng xóa nó. Tiếp theo, chúng tôi có 1, định cấu hình tiện ích mở rộng trước khi cài đặt. Và cuối cùng chúng ta có 2, cài đặt (các) tiện ích mở rộng. Về cơ bản, hầu hết mọi thứ chúng tôi làm với tiện ích mở rộng cần phải diễn ra trong khoảng thời gian từ 3 đến 4Các tập lệnh được mô tả trong phần của hình ảnh chính thức README Cài đặt tiện ích mở rộngCài đặt tiện ích mở rộng theo cách thủ công theo cùng một mẫu, chủ yếu
Một số tiện ích mở rộng yêu cầu nhiều công việc hơn một chút so với những tiện ích mở rộng khác, nhưng đây là ý chính của nó. Hãy bắt đầu với một cài đặt đơn giản như ________ 17 Đang cài ext-apcuChúng tôi sẽ nhận được nguồn 7 từ GitHub. Chúng tôi sẽ sử dụng 9 để xác định phiên bản chúng tôi muốn để dễ dàng phát hiện và điều chỉnh
Cài đặt ext-redis với ext-igbinaryBây giờ mọi thứ trở nên phức tạp hơn một chút, chúng tôi muốn cài đặt 20 với 21 làm bộ nối tiếp. Chúng tôi sẽ sử dụng 1 để định cấu hình 20 trước khi cài đặt. Ngoài ra, nó giống như 7 2Cài đặt ext-mongodbBây giờ mọi thứ trở nên rối rắm, việc biên dịch 25 cần nhiều công sức hơn một chút. Chúng tôi sẽ sử dụng bản dựng nhiều giai đoạn để giữ cho hình ảnh kết quả của chúng tôi rõ ràng nhất có thể. Kho lưu trữ sử dụng các mô-đun con và đáng buồn là chúng không được đưa vào kho lưu trữ, vì vậy chúng tôi sẽ phải sao chép kho lưu trữ, điều này không lý tưởng. Về việc cài đặt, tôi chủ yếu làm theo hướng dẫn trong sách hướng dẫn 9Ghi chú. Nếu hình ảnh cơ sở của bạn là 26, bạn cần thay thế 27 bằng 28Dockerfile cuối cùng, không có PECLĐây là Dockerfile cuối cùng của chúng tôi, không có PECL. Nó khá dài dòng, nhưng bây giờ chúng ta có thể chơi với PHP 7. 4 hoặc thậm chí PHP 8. 0 Làm cách nào để cài đặt PHP trong tệp Docker?Để thiết lập bộ chứa tác nhân PHP cho Docker. Đảm bảo cài đặt PHP có sẵn trong vùng chứa. Ví dụ: sử dụng hình ảnh Docker đã xuất bản như php. 7. 1. Để cài đặt tác nhân, hãy tải xuống gói tác nhân PHP từ trang web tải xuống tệp tar của New Relic và chạy tập lệnh newrelic-install với đối số cài đặt .
Làm cách nào để cài đặt PHP 8 trong Docker?Chạy PHP 8 . tải xuống và chạy hình ảnh vùng chứa. docker chạy -it akondas/php. 8. 0-cli-alpine mount thư mục làm việc (để bộ chứa có thể đọc các tệp từ thư mục thực chứa nó) -v "$PWD". /usr/src/ứng dụng đặt thư mục làm việc thành thư mục được lắp ráp ở trên. -w /usr/src/ứng dụng Làm cách nào để chạy tệp PHP trong Docker?Cụ thể, bạn sẽ học cách. . Cài đặt Docker Chạy hình ảnh Docker Xây dựng hình ảnh khách hàng để chạy chương trình Sử dụng Docker Compose để thiết lập môi trường dev Chạy ứng dụng của chúng tôi trong Heroku Kiểm tra ứng dụng của chúng tôi với Tích hợp liên tục (CI) Triển khai ứng dụng của bạn với Triển khai liên tục (CD) Làm cách nào để bật tiện ích mở rộng PHP trong Docker?Có thể bao gồm các phần mở rộng PHP trong tệp này bằng thiết bị đầu cuối của tệp. . Đặc trưng Bước 1. Lúc đầu, thiết bị đầu cuối trong tệp docker sẽ được mở. . Bước 2. Sau đó, lệnh sau nên được sử dụng. . Bước 3. Sau một thời gian chờ đợi, khi quá trình hoàn tất, một thông báo sẽ hiển thị 'Bản dựng hoàn tất' |