Может ли Php-fpm обрабатывать cli-скрипт? Что происходит внутри официального докера php?

Я использую официальный Docker Php-Fpm (https://github.com/docker-library/php/blob/master/7.2/alpine3.8/fpm/Dockerfile) и официальное изображение Nginx для моего сайта php. Я настроил Nginx для общения с php-fpm через порт 9000. Точка входа в докер приведена ниже.

#!/bin/sh
set -e

# first arg is `-f` or `--some-option`
if [ "${1#-}" != "$1" ]; then
set -- php-fpm "$@"fi

exec "$@"

Вы можете увидеть, когда мы пытаемся выполнить такую ​​команду, как docker exec -it container whoami, с префиксом php-fpm,

Так что мой вопрос, когда я передаю сценарий PHP Cli, например, например, docker exec -it container composer install как это интерпретируется? делает composer install обрабатывается php-fpm или php-cli (/ usr / local / bin / php)?

Согласно моим знаниям, composer — это cli-скрипт, который я устанавливаю, как показано ниже, должен обрабатываться php-cli.

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin -- --filename=composer

0

Решение

exec "$@" только выполняет команду, определенную как CMD в файле Dockerfile / Docker-compose, только один раз, когда контейнер создается изначально. Как только контейнер запустится и вы захотите выполнить на нем любую команду, эта команда из docker exec не отменяет эту CMD [«php-fpm»]

Также скрипт композитора использует php-cli, а не php-fpm.
https://github.com/dbjpanda/composer/blob/70557f3ab7b84a896179396509611fae66b19773/bin/composer#L4

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]