在 docker 文件中添加 PHP 版本的正确语法是什么?
我有这个语法:
FROM --platform=linux/x86-64 alpine:3.11 php:7.4-fpm-alpine
WORKDIR /app
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
RUN apk --no-cache add tzdata && \
cp /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
echo "UTC" | tee /etc/timezone && \
apk del tzdata
RUN apk --update add wget \
curl \
git \
php7 \
php7-opcache \
php7-ctype \
php7-xml \
php7-xmlreader \
php7-xmlwriter \
php7-tokenizer \
php7-pcntl \
php7-json \
php7-dom \
php7-zip \
php7-gd \
php7-curl \
php7-mbstring \
php7-redis \
php7-posix \
php7-mcrypt \
php7-iconv \
php7-pdo_mysql \
php7-phar \
php7-simplexml \
php7-openssl \
php7-sockets \
php7-fileinfo && rm /var/cache/apk/*
这种语法的问题是我在这一行遇到错误: FROM --platform=linux/x86-64 alpine:3.11 php:7.4-fpm-alpine
在我的 docker 文件中添加 PHP 版本的正确语法是什么?
谢谢!
FROM
只接受一个或三个参数并且--platform=linux/x86_64
是一个修饰符而不是一个参数所以把它分成两行。
FROM --platform=linux/x86_64 alpine:3.11
FROM php:7.4-fpm-alpine
虽然,根据官方文档,您可能只想要,FROM php:7.4-fpm-alpine
除非您有其他原因想要alpine:3.11
图像上可用但图像上没有的东西php:7.4-fpm-alpine
。
Dockerfile
在下面的结果中添加我的更改。我已经测试过这个并docker build ./
在一个空目录中使用这个文件。
FROM --platform=linux/x86-64 alpine:3.11
FROM php:7.4-fpm-alpine
WORKDIR /app
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
RUN apk --no-cache add tzdata && \
cp /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
echo "UTC" | tee /etc/timezone && \
apk del tzdata
RUN apk --update add wget \
curl \
git \
php7 \
php7-opcache \
php7-ctype \
php7-xml \
php7-xmlreader \
php7-xmlwriter \
php7-tokenizer \
php7-pcntl \
php7-json \
php7-dom \
php7-zip \
php7-gd \
php7-curl \
php7-mbstring \
php7-redis \
php7-posix \
php7-mcrypt \
php7-iconv \
php7-pdo_mysql \
php7-phar \
php7-simplexml \
php7-openssl \
php7-sockets \
php7-fileinfo && rm /var/cache/apk/*
作为额外的建议,这更像是“一致性”而不是“您的构建将很快中断”,因为 PHP 7.4 处于 LTS 中,并且不会有 PHP 7.5。您可能需要改变FROM php:7.4-fpm-alpine
,以FROM php:7-fpm-alpine
作为你intstallingphp7-*
将封装技术上采取的最新兼容版本7包,但你对你的锁php-fpm
版本到最新7 4版本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句