【问题标题】:running a phpUnit test within a docker container在 docker 容器中运行 phpUnit 测试
【发布时间】:2019-03-18 14:55:40
【问题描述】:

我想在 docker 容器中运行特定版本的 phpUnitWITHIN。此容器将使用特定版本的 php。即

php:5.6-apache

它是一个 Laravel 应用程序。我已经通过 composer 在主机文件上安装了 phpunit,然后使用 volume 命令将其传输到容器。
我的 composer.json 文件有以下条目:

“需要开发”:{ “phpunit/phpunit”:“^5.0” },

这是我在我的 testdev 容器上运行测试的 docker run 命令:

docker run --rm -it -v ~/Users/mow/Documents/devFolder/testdev:/app testdev_php "php ./vendor/bin/phpunit"

这会返回错误:

exec: fatal: unable to exec php ./vendor/bin/phpunit: No such file or directory

我不清楚为什么会这样说,因为供应商目录位于我网站目录的根目录。

这是我的 dockerfile

FROM php:5.6-apache

ENV S6_OVERLAY_VERSION 1.11.0.1

RUN apt-get update && apt-get install -y \
    libldap2-dev \
    git \
    --no-install-recommends \
    && rm -r /var/lib/apt/lists/* \
    && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
    && docker-php-ext-install ldap \
    && docker-php-ext-install mysqli pdo pdo_mysql

#install xdebug 
RUN git clone https://github.com/xdebug/xdebug.git \
    && cd xdebug \
    && git checkout tags/XDEBUG_2_5_5 \
    && phpize \
    && ./configure --enable-xdebug \
    && make \
    && make install


RUN a2enmod rewrite

COPY ./docker/rootfs /
COPY . /app

WORKDIR /app

ENTRYPOINT ["/init"]

我想真正的问题是:在 docker 容器中运行 phpUnit 测试的正确方法是什么,以使其受制于该容器中的 php 版本。

【问题讨论】:

    标签: docker docker-compose phpunit dockerfile


    【解决方案1】:

    在入口点中,您需要运行 composer install 以安装将在 docker 容器中可用的必要包

    【讨论】:

      【解决方案2】:

      没有 Dockerfile 在 Windows PowerShell 中使用此代码:

      docker run --rm -v ${pwd}:/app composer:latest require --dev phpunit/phpunit:^8
      

      创建 composer 容器来安装 phpunit 然后删除容器。

      注意:在 windows 命令中 %cd% / 在 windows PowerShell 中 ${pwd} / 在 linux 中 $PWD


      然后创建新的 PHP 容器,复制所有填充包括 ppuint feamework

      docker run -d -p 80:80 --name my-php-apache -v ${pwd}:/var/www/html php:7.4.0-apache
      

      要激活自动加载文件,测试请访问Page

      【讨论】:

        猜你喜欢
        • 2018-09-02
        • 2020-04-22
        • 1970-01-01
        • 1970-01-01
        • 2018-09-21
        • 1970-01-01
        • 2016-02-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多