Docker PHP ext 启用命令失败

问题描述 投票:0回答:3

要使用

docker-php-ext-...
命令需要什么?我正在创建阿尔卑斯山图像

FROM alpine:3.12

RUN apk update && \
    # Add support for PHP7.4.
    apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community \
    php php7-fpm nginx composer git 
    ....

# PHPIZE dependencies + xdebug
RUN apk add --no-cache autoconf file g++ gcc libc-dev make pkgconf re2c \
    php7-pecl-xdebug \
    && docker-php-ext-install xdebug

...

但我越来越

/bin/sh: docker-php-ext-install: not found

如何运行该命令? 另外,

apk add php7-pecl-xdebug
可以取代安装
pecl
作为依赖项并需要这样的扩展吗?

php docker xdebug pecl
3个回答
4
投票

您正在使用香草高山图像。

docker-php-ext-*
命令仅存在于php-alpine图像

例如,将

FROM
替换为:

FROM php:7.4-fpm-alpine

2
投票

有两个问题。

  1. 正如 Dmitry 所说,您使用的不是 PHP 映像,而是普通的 Alpine 映像。

  2. 您尝试将 nginx 和 PHP 打包到一个容器中。

当你想要编排nginx和PHP时,你应该使用

docker-compose

这是 PHP+nginx 的示例

docker-compose.yml
:

version: '3.1'

services:
    nginx:
        restart: always
        image: nginx:latest
        volumes:
            - ./html/:/var/www/html/:cached
        ports:
            - "80:80"
        links:
            - php

    php:
        restart: always
        build:
            dockerfile: Dockerfile
        expose:
            - 9000
        volumes:
            - ./:/var/www/:cached

这是使用的 PHP

Dockerfile

FROM php:7.4-fpm-alpine

ENV COMPOSER_ALLOW_SUPERUSER 1

RUN docker-php-ext-install mysqli

RUN set -xe \
    && apk add --update \
        icu \
    && apk add --no-cache --virtual .php-deps \
        make \
    && apk add --no-cache --virtual .build-deps \
        $PHPIZE_DEPS \
        zlib-dev \
        icu-dev \
        g++ \
    && docker-php-ext-configure intl \
    && docker-php-ext-install intl \
    && docker-php-ext-enable intl \
    && { find /usr/local/lib -type f -print0 | xargs -0r strip --strip-all -p 2>/dev/null || true; } \
    && apk del .build-deps \
    && rm -rf /tmp/* /usr/local/lib/php/doc/* /var/cache/apk/*

0
投票

作为辅助解决方案,您可以在本地拥有启用 PHP 扩展的 php.ini。将本地 php.ini 挂载到容器中。例如:

  fpm:
    build: docker/php
    volumes:
      - './:/var/www/html'
      - './docker/php/php.ini:/opt/bitnami/php/lib/php.ini'
© www.soinside.com 2019 - 2024. All rights reserved.