У меня есть приложение Laravel, у которого есть несколько интеграционных тестов, и этот проект Dockerized использует Docker Compose, и он состоит из 5 контейнеров: php-fpm
, mysql
, redis
, nginx
и workspace
, которые имеютphp-cli
и composer
установлены сами по себе (точно так же, как Laradock ).Я хочу запустить тесты, пока test stage
работает в моем процессе CI.Я должен упомянуть, что моим CI-сервером является GitLab CI.
По сути, я запускаю тесты в своей локальной системе, выполняя следующие команды в моем терминале:
$ docker-compose up -d
Creating network "docker_backend" with driver "bridge"
Creating network "docker_frontend" with driver "bridge"
Creating redis ... done
Creating workspace ... done
Creating mysql ... done
Creating php-fpm ... done
Creating nginx ... done
$ docker-compose exec workspace bash
// now, I have logged in to workspace container
$ cd /var/www/app
$ phpunit
PHPUnit 6.5.13 by Sebastian Bergmann and contributors.
........ 8 / 8 (100%)
Time: 38.1 seconds, Memory: 28.00MB
OK (8 tests, 56 assertions)
Вот мой вопрос: Как я могу запустить эти тесты на стадии тестирования, когда нет запущенного контейнера?Каковы лучшие практики в этом случае?
Я также следовал этой документации по GitLab , но кажется, что не стоит использовать Docker-in-Docker или Docker SocketBinding.