docker - 在 docker 容器中运行 phpUnit 测试
问题描述
我想在 docker 容器中运行特定版本的phpUnit 。此容器将使用特定版本的 php。IE
php:5.6-阿帕奇
它是一个 Laravel 应用程序。我已经通过composer在hostfiles上安装了phpunit,然后使用volume命令将其传输到容器。
我的 composer.json 文件有以下条目:
"require-dev": { "phpunit/phpunit": "^5.0" },
这是我的 docker run 命令,用于在我的 testdev 容器上运行测试:
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
我不清楚为什么会这样说,因为 te 供应商目录位于我的站点目录的根目录中。
这是我的码头文件
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 版本。
解决方案
在入口点中,您需要运行composer install
以安装将在 docker 容器中可用的必要包
推荐阅读
- javascript - 如何从控件接收属性以对 CanJS 建模(定义模块)
- python - 使用带有 defaultdict 的附加时的 KeyError(Key)
- javascript - JavaScript 中的游戏问题,点击时警报来得太快
- android - 如何更改 AdMob 货币
- python - 将 Lightstreamer 与 IG Index API 一起使用
- python - 为什么我在输出 GAN 模型上得到这些线
- node.js - MongoDB Atlas 连接在 Heroku for NodeJS 上不起作用
- reactjs - 带有graphql-request的SWR如何在swr中添加变量?
- java - Swagger 没有显示我的控制器。试过邮递员,我的端点仍然失败
- java - Oracle jpa 无法插入空值