如何使用 Dockerfile 在容器中安装 PHPUnit?

How to install PHPUnit in a container using a Dockerfile?

我正在尝试使用基于映像 php:7.4-fpm-alpine 的 dockerfile 安装 PHPUnit。我的 dockerfile 是这样的:

FROM php:7.4-fpm-alpine

RUN touch /var/log/error_log

ADD ./php/www.conf /usr/local/etc/php-fpm.d/www.conf

RUN addgroup -g 1000 wp && adduser -G wp -g wp -s /bin/sh -D wp

RUN mkdir -p /var/www/html

RUN chown wp:wp /var/www/html

WORKDIR /var/www/html

RUN docker-php-ext-install mysqli pdo pdo_mysql && docker-php-ext-enable pdo_mysql

RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

RUN chmod +x wp-cli.phar && mv wp-cli.phar /usr/local/bin/wp

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

#install PHPunit
RUN curl -O https://phar.phpunit.de/phpunit-6.5.phar

RUN chmod +x phpunit-6.5.phar && mv phpunit-6.5.phar /usr/local/bin/phpunit

RUN phpunit --version

但我一直收到错误消息:

=> 错误 [7/7] 运行 phpunit --version 0.4s

[7/7] RUN phpunit --version: #11 0.348 /usr/local/bin/phpunit: line 1: can't open html: no such file #11 0.348 /usr/local/bin/phpunit: line 2: syntax error: unexpected redirection

我不知道为什么 phpunit 命令不可用。谁能给我一点帮助?

maik@LA-027:~/docker$ php phpunit-6.5.phar --version
<html>
<head><title>302 Found</title></head>
<body>
<center><h1>302 Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

您的来源返回 302。

phpunit-6.5.phar 在站点上不存在。必须是 phpunit-6.5.0.phar

直接上phar list看看

phar list

你安装了composer,为什么不用compose安装phpunit?

composer require phpunit/phpunit ^6.5