Docker контейнер не записывается в общий файл при вызове через API на Production - PullRequest
0 голосов
/ 07 марта 2020

В моем проекте у меня есть команда, которая запускает контейнер docker. Этот контейнер docker, который я назвал "phptester", запускает "phpunit" на общем томе и сохраняет результат в файле "result. xml".

Этот компонент помещается в веб-службу, которая вызывается API. Все отлично работает локально, но, к сожалению, на производственном сервере нет. Когда я запускаю контейнер на производственном сервере или команду, он запускает тесты phpunit и сохраняет результат в файле xml. Но через API файл xml остается пустым.

Вот конфигурация для контейнера:

Dockerfile:

FROM php:7.2-cli
RUN curl -sS https://getcomposer.org/installer | php \
    && mv composer.phar /usr/local/bin/ \
    && ln -s /usr/local/bin/composer.phar /usr/local/bin/composer

WORKDIR /var/www/html
COPY run.sh /usr/local/bin
CMD sh /usr/local/bin/run.sh

run. sh:

#!/usr/bin/env bash

## 01 - composer install
composer install --prefer-source --no-interaction

## 02 - phpunit
php /var/www/html/vendor/bin/phpunit --configuration ./phpunit.xml --log-junit ./result.xml

Контроллер:

$process = new Process("sudo docker run -v /var/www/folder:/var/www/html phptester");

Я пробовал:

  • chmod 777 в файле xml.
  • chown www-data: www-data в файле xml.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...