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ì đó

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ư

FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
3 hoặc
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
4. Một số cần được cài đặt thủ công như
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
5,
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
6 hoặc
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
7

FROM php:7.3.2-fpm-stretch

RUN apt-get update && \
    pecl channel-update pecl.php.net && \
    pecl install apcu igbinary mongodb && \
    # compile Redis with igbinary support
    pecl bundle redis && cd redis && phpize && ./configure --enable-redis-igbinary && make && make install && \
    docker-php-ext-install bcmath sockets && \
    docker-php-ext-enable apcu igbinary mongodb opcache redis && \
    docker-php-source delete && \
    rm -r /tmp/* /var/cache/* /var/www/html/*

RUN echo '\
opcache.interned_strings_buffer=16\n\
opcache.load_comments=Off\n\
opcache.max_accelerated_files=16000\n\
opcache.save_comments=Off\n\
' >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini

Tập lệnh có sẵn trong hình ảnh docker

Trướ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ó

FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
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ó
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
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ó
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
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ừ
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
3 đến
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
4

Cá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ộng

Cài đặt tiện ích mở rộng theo cách thủ công theo cùng một mẫu, chủ yếu

  1. Tạo thư mục tương ứng trong
    FROM php:7.3.2-fpm-stretch
    
    ENV EXT_APCU_VERSION=5.1.17
    
    RUN docker-php-source extract \
        # ext-apcu
        && mkdir -p /usr/src/php/ext/apcu \
        && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
        && docker-php-ext-install apcu \
        # cleanup
        && docker-php-source delete
    5
  2. Giải nén nguồn trong thư mục đó. Nguồn thường có sẵn trên GitHub
  3. Gọi
    FROM php:7.3.2-fpm-stretch
    
    ENV EXT_APCU_VERSION=5.1.17
    
    RUN docker-php-source extract \
        # ext-apcu
        && mkdir -p /usr/src/php/ext/apcu \
        && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
        && docker-php-ext-install apcu \
        # cleanup
        && docker-php-source delete
    2 để cài đặt tiện ích mở rộng

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-apcu

Chúng tôi sẽ nhận được nguồn

FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
7 từ GitHub. Chúng tôi sẽ sử dụng
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
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

FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete

Cài đặt ext-redis với ext-igbinary

Bâ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

FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
20 với
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
21 làm bộ nối tiếp. Chúng tôi sẽ sử dụng
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
1 để định cấu hình
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
20 trước khi cài đặt. Ngoài ra, nó giống như
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
7

FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
2

Cài đặt ext-mongodb

Bây giờ mọi thứ trở nên rối rắm, việc biên dịch

FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
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

FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
9

Ghi chú. Nếu hình ảnh cơ sở của bạn là

FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
26, bạn cần thay thế
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
27 bằng
FROM php:7.3.2-fpm-stretch

ENV EXT_APCU_VERSION=5.1.17

RUN docker-php-source extract \
    # ext-apcu
    && mkdir -p /usr/src/php/ext/apcu \
    && curl -fsSL //github.com/krakjoe/apcu/archive/v$EXT_APCU_VERSION.tar.gz | tar xvz -C /usr/src/php/ext/apcu --strip 1 \
    && docker-php-ext-install apcu \
    # cleanup
    && docker-php-source delete
28

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

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'

Chủ Đề