错误:Dockerfile 解析错误第 4 行:未知指令:PHP7

kyo*_*kyo 0 php docker dockerfile docker-compose php-7

我有一个 dockerfile

\n\n

在此输入图像描述

\n\n
FROM alpine:3.7\n\nRUN apk --no-cache add\nphp7\nphp7-fpm\nphp7-pdo\nphp7-pdo_mysql\nphp7-mcrypt\nphp7-mbstring\nphp7-xml\nphp7-openssl\nphp7-json\nphp7-phar\nphp7-zip\nphp7-dom\nphp7-session\nphp7-zlib &&\nphp7 -r "copy(\'http://getcomposer.org/installer\', \'composer-setup.php\');" &&\nphp7 composer-setup.php --install-dir=/usr/bin --filename=composer &&\nphp7 -r "unlink(\'composer-setup.php\');" &&\nln -sf /usr/bin/php7 /usr/bin/php &&\nln -s /etc/php7/php.ini /etc/php7/conf.d/php.ini\n\nRUN set -x\n&& addgroup -g 82 -S www-data\n&& adduser -u 82 -D -S -G www-data www-data\n\nCOPY . /src\nADD .env.example /src/.env\nWORKDIR /src\nRUN ["/bin/sh", "-c"," php artisan key:generate"]\nRUN chmod -R 777 storage\nCMD php artisan serve --host=0.0.0.0\n
Run Code Online (Sandbox Code Playgroud)\n\n

在运行它的过程中,我不断得到

\n\n
Creating network "portal-modules_default" with the default driver                                                                  \nBuilding fingerprinting                                                                                                            \n> ERROR: Dockerfile parse error line 4: unknown instruction: PHP7                                                                    \n\xe2\x9a\xa1\xef\xb8\x8f  portal-modules \n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

错误:Dockerfile 解析错误第 4 行:未知指令:PHP7

\n
\n\n

关于如何解决这个问题有任何提示吗?

\n\n

我需要放&在某个地方连接命令吗?

\n

Krz*_*ski 5

问题是这样的:

RUN apk --no-cache add
php7
php7-fpm
php7-pdo
php7-pdo_mysql
php7-mcrypt
php7-mbstring
php7-xml
php7-openssl
php7-json
php7-phar
php7-zip
php7-dom
php7-session
php7-zlib &&
php7 -r "copy('http://getcomposer.org/installer', 'composer-setup.php');" &&
php7 composer-setup.php --install-dir=/usr/bin --filename=composer &&
php7 -r "unlink('composer-setup.php');" &&
ln -sf /usr/bin/php7 /usr/bin/php &&
ln -s /etc/php7/php.ini /etc/php7/conf.d/php.ini
Run Code Online (Sandbox Code Playgroud)

如果要在多行中编写命令,请使用反斜杠( \) 符号:

RUN apk --no-cache add \
    php7 \
    php7-fpm \
    php7-pdo \
    php7-pdo_mysql \
    php7-mcrypt \
    php7-mbstring \
    php7-xml \
    php7-openssl \
    php7-json \
    php7-phar \
    php7-zip \
    php7-dom \
    php7-session \
    php7-zlib && \
    php7 -r "copy('http://getcomposer.org/installer', 'composer-setup.php');" && \
    php7 composer-setup.php --install-dir=/usr/bin --filename=composer && \
    php7 -r "unlink('composer-setup.php');" && \
    ln -sf /usr/bin/php7 /usr/bin/php && \
    ln -s /etc/php7/php.ini /etc/php7/conf.d/php.ini
Run Code Online (Sandbox Code Playgroud)

换行时在每行添加反斜杠。

有用的链接:https ://docs.docker.com/develop/develop-images/dockerfile_best-practices/