Как отключить некоторые расширения php, предварительно установленные и включенные в контейнере Google App Engine - PullRequest
0 голосов
/ 28 марта 2019

Эти расширения предварительно установлены и включены в php-контейнере Google App Engine:

  • APCu
  • Bzip2
  • cURL
  • FPM
  • GMP
  • mbstring
  • mcrypt
  • libsodium
  • Memcached
  • MySQL (PDO) (использует mysqlnd)
  • MySQLi (использует mysqlnd)
  • OPcache
  • OpenSSL
  • pcntl
  • PostgreSQL
  • PostgreSQL (PDO)
  • Readline
  • перекодировать
  • sem
  • Розетки
  • Zip
  • Zlib

Онискомпилирован с php и включен по умолчанию (как вы можете видеть здесь https://github.com/GoogleCloudPlatform/php-docker/blob/master/package-builder/debian/rules.in)

Как я могу отключить некоторые из них? MySQL, например, так как я использую postgres.

Вот мойDockerfile до настоящего момента:

FROM gcr.io/google-appengine/php72:latest

ARG ENABLE_XDEBUG
ARG COMPOSER_FLAGS='--no-scripts --no-dev --prefer-dist'
ENV COMPOSER_FLAGS=${COMPOSER_FLAGS}

RUN apt-get update -y
RUN apt-get install unzip -y
RUN apt-get install autoconf -y
RUN apt-get install build-essential -y

# php-decimal
RUN apt-get install libmpdec-dev -y
RUN pecl install decimal

# Swoole
RUN pecl install swoole-4.2.13

COPY . $APP_DIR
RUN chown -R www-data.www-data $APP_DIR
RUN /bin/bash /build-scripts/move-config-files.sh
RUN /build-scripts/composer.sh;

ENTRYPOINT ["/build-scripts/entrypoint.sh"]
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]

# Option to install xdebug
RUN echo "Will enable XDEBUG: $ENABLE_XDEBUG"
RUN if [ "$ENABLE_XDEBUG" = "true" ]; then pecl install xdebug; fi
RUN if [ "$ENABLE_XDEBUG" = "true" ]; then echo "zend_extension=/opt/php72/lib/x86_64-linux-gnu/extensions/no-debug-non-zts-20170718/xdebug.so" >> /opt/php72/lib/php.ini; fi

EXPOSE 8080

1 Ответ

0 голосов
/ 10 апреля 2019

Вы можете получить полный контроль над контейнером и загружаемыми расширениями, подключив в контейнер свой собственный php.ini (и полный каталог conf.d).

Вы можете запустить контейнер, а затем войти в него, используя ...

docker exec -it [container_name] bash

... и перейти в каталог /opt/php72/lib.Или загрузите php.ini напрямую, используя ...

docker cp [container_name]:/opt/php72/lib/php.ini

..., измените его и смонтируйте том в контейнер с помощью флага -v или добавьте его в docker-compose.файл yml.

Еще одна вещь, которая привлекла мое внимание в вашем Dockerfile, - это xdebug.Так добавляется в php.ini.Было бы лучше добавить отдельный .ini в каталог PHP conf.d, чтобы оригинальный файл остался ... ну, оригинальный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...