2

i want to run a specific version of phpUnit WITHIN a docker container. This container will use a specific version of php. i.e

php:5.6-apache

Its a Laravel application. i have install phpunit via composer on the hostfiles and then used the volume command to transfer this to the container.
my composer.json file has following entry:

"require-dev": { "phpunit/phpunit": "^5.0" },

This is my docker run command to run the test on my testdev container:

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

This returns the error:

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

i am unclear why it says this because te vendor directory is at the root of my site directory.

this is my 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"]

I guess the real question is this: what is the correct way to run a phpUnit test within a docker container so that its subject to the php version within that container.

2 Answers 2

3

In the Entrypoint, you need to ran composer install to install the requisite packages that will be available in the docker container

Sign up to request clarification or add additional context in comments.

Comments

0

without Dockerfile use this code in windows PowerShell :

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

create composer container to install phpunit then remove the container.

note: in windows Command %cd% / in windows PowerShell ${pwd} / in linux $PWD


then Create new PHP container with copy all fills include phpuint feamework

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

to active autoload file, and testing please visit this Page

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.