将特定的PHP版本分配给Drupal(Docker容器)

有没有办法将一个特定的PHP版本分配给Drupal Docker容器?

我有一个docker-compose文件来链接Drupal和MariaDB。 一切工作到目前为止,但我想分配一个特定的PHP版本用于迁移的目的。

由于您使用的是官方图片,因此只能使用特定的PHP版本。 考虑下面的官方形象的docker文件

https://github.com/docker-library/drupal/blob/a8e09f524b89b61534f376e45b885d433d867c88/7/apache/Dockerfile

 # from https://www.drupal.org/requirements/php#drupalversions FROM php:7.0-apache RUN a2enmod rewrite # install the PHP extensions we need RUN set -ex \ && buildDeps=' \ libjpeg62-turbo-dev \ libpng12-dev \ libpq-dev \ ' \ && apt-get update && apt-get install -y --no-install-recommends $buildDeps && rm -rf /var/lib/apt/lists/* \ && docker-php-ext-configure gd \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ && docker-php-ext-install -j "$(nproc)" gd mbstring pdo pdo_mysql pdo_pgsql zip \ # PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20151012/gd.so' - libjpeg.so.62: cannot open shared object file: No such file or directory in Unknown on line 0 # PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20151012/pdo_pgsql.so' - libpq.so.5: cannot open shared object file: No such file or directory in Unknown on line 0 && apt-mark manual \ libjpeg62-turbo \ libpq5 \ && apt-get purge -y --auto-remove $buildDeps WORKDIR /var/www/html # https://www.drupal.org/node/3060/release ENV DRUPAL_VERSION 7.56 ENV DRUPAL_MD5 5d198f40f0f1cbf9cdf1bf3de842e534 RUN curl -fSL "https://ftp.drupal.org/files/projects/drupal-${DRUPAL_VERSION}.tar.gz" -o drupal.tar.gz \ && echo "${DRUPAL_MD5} *drupal.tar.gz" | md5sum -c - \ && tar -xz --strip-components=1 -f drupal.tar.gz \ && rm drupal.tar.gz \ && chown -R www-data:www-data sites 

现在创build一个这个副本。 并将顶端FROM php:7.0-apache更改为您感兴趣的版本。您可以在下面看到所有可用的版本

https://hub.docker.com/r/library/php/tags/

然后重build图像创build自己的drupal图像与特定的php版本