我目前正在尝试从Symfony3迁移到Symfony4,为此,我需要在docker上构建的PHP映像中安装nodejs和yarn(以便可以使用webpack encore)。
问题是,无论我在PHP映像构建中进行了什么更改,它都不会安装最新(或任何最新版本的)nodejs,并且显示v0.28.x(而不是10.x)。
这是我当前的版本:
FROM php:7.1.5-fpm
ADD ini /usr/conf/php/ini
# Installing extensions
RUN set -ex; \
\
apt-get update; \
apt-get install -y \
libjpeg-dev \
libpng12-dev \
libmcrypt-dev \
ssmtp \
apt-transport-https \
zip \
unzip; \
\
rm -rf /var/lib/apt/lists/*; \
\
docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr; \
docker-php-ext-install gd mysqli opcache pdo_mysql json mcrypt; \
pecl install -o -f xdebug redis \
&& rm -rf /tmp/pear;
# Appending configuration to respective files
RUN \
# PHP ini
cat /usr/conf/php/ini/php.ini > /usr/local/etc/php/php.ini; \
# OpCache
cat /usr/conf/php/ini/opcache.ini > /usr/local/etc/php/conf.d/opcache-recommended.ini; \
# Xdebug
cat /usr/conf/php/ini/xdebug.ini > /usr/local/etc/php/conf.d/xdebug.ini; \
# Redis
cat /usr/conf/php/ini/redis.ini > /usr/local/etc/php/conf.d/redis.ini;
# Composer installation
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"; \
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') \
{ echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"; \
php composer-setup.php; \
php -r "unlink('composer-setup.php');" \
mv /var/www/html/composer.phar .;
CMD ["php-fpm"]
EXPOSE 9000
到目前为止,我已经尝试过:
1)将其添加到脚本第一部分的 apt-get install 中
2)添加一个 RUN 调用并从我认为是官方的nodejs ubuntu软件包存储库中安装它,但是无论如何,它都行不通,仍然停留在那个0.28.x版本中
有没有人?