Hướng dẫn docker php ext install sodium - docker php ext cài đặt natri
Nếu ai đó vẫn vấp phải việc phải làm điều này, hãy thêm vào Dockerfile của bạn: Show 0Mở phiên bản của bạn, chạy 1 và 2, sẽ cung cấp cho bạn một cái gì đó như thế này:
. Có vẻ như libsodium nên có sẵn trong php Core kể từ Php 7.2, vậy có thực sự cần thiết để cài đặt nó không? Tôi đang cố gắng cài đặt tiện ích mở rộng 3 trong Php Docker bằng cách sử dụng 4, tuy nhiên, nó không thành công với lỗi:PHP Docker using 4, however, it fails with the error:
Dockerfile của tôi:
Vấn đề này đã làm tôi bối rối trong một thời gian dài. Bất kỳ đề xuất? hỏi ngày 9 tháng 7 năm 2019 lúc 3:33Jul 9, 2019 at 3:33
2 Tôi đã giải quyết vấn đề đi vào hình ảnh của bạn, thứ tự của các tệp này xác định được tải trước
5 cho phép một lá cờ thay đổi tên 6, do đó, việc thực hiện 7 có tải nó trong lần cuối. Vì vậy, dockerfile chính xác nên
Đã trả lời ngày 10 tháng 7 năm 2019 lúc 3:20Jul 10, 2019 at 3:20
Bắt đầu với Php 7.4, PEAR bị vô hiệu hóa theo mặc định, có nghĩa là PECL không còn khả dụng để cài đặt các tiện ích mở rộng. Có một số lý do cho quyết định đó, vì vậy chúng tôi sẽ phải làm. Tôi đã mất vài giờ để cập nhật Dockerfile của mình và thay thế các cuộc gọi PECL bằng các bản cài đặt thủ công, rằng MongoDB là khá khó khăn. Tôi đã viết bài viết này vì tôi muốn chơi với Php 7.4 nhưng nhấn một bức tường với việc cài đặt các tiện ích mở rộng. Tôi hy vọng nó sẽ được một số trợ giúp. EDIT: 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. I think I found a simpler solution using PECL packages. Dockerfile ban đầu, với PECLĐây là Dockerfile của hình ảnh cơ sở của một trong những 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 phần mở rộng trong đó. Một số được bó với PHP như 8 hoặc 9. Một số cần được cài đặt thủ công như 0, 1 hoặc 2.
Các tập lệnh có sẵn trong hình ảnh DockerTrước khi chúng tôi bắt đầu, hãy có một cái nhìn tổng quan nhanh về các tập lệnh có sẵn trong hình ảnh Docker. Đầu tiên chúng ta có 3, trích xuất nguồn PHP cần thiết để xây dựng các phần mở rộng và cũng xóa nó. Tiếp theo, chúng tôi có 4, cấu hình một phần mở rộng trước khi nó được cài đặt. Và cuối cùng chúng tôi có 5, 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 các phần mở rộng cần phải xảy ra giữa 6 và 7.Các tập lệnh được mô tả trong phần Cách cài đặt thêm phần mở rộng PHP của hình ảnh chính thức ReadMe. Cài đặt tiện ích mở rộngCài đặt các tiện ích mở rộng theo cách thủ công theo cùng một mẫu, chủ yếu là:
Một số tiện ích mở rộng đòi hỏi nhiều công việc hơn một chút so với những người khác, nhưng đây là ý chính của nó. Hãy ăn xin với một cài đặt đơn giản như 0.Cài đặt ext-APCUChúng tôi sẽ nhận được nguồn 0 từ GitHub. Chúng tôi sẽ sử dụng 2 để 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-ifBâ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 3 với 4 làm người tuần tự. Chúng tôi sẽ sử dụng 4 để định cấu hình 3 trước khi cài đặt. Ngoài ra, nó giống như 0.
Cài đặt ext-mongodbBây giờ mọi thứ có được một chút lông, biên soạn 8 đòi hỏi một công việc nhiều hơn.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 sạch nhất có thể.Kho lưu trữ sử dụng các mô hình con, và thật đá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 các hướng dẫn trong hướng dẫn.
Lưu ý: Nếu hình ảnh cơ sở của bạn là 9 you need to replace 0 with 1.Dockerfile 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. |