Я работаю над конфигурацией Gitlab CI в файле .gitlab-ci.yml для проекта Laravel, который использует redis в качестве драйвера кэша. В этом файле конфигурации я использую образ, содержащий все пакеты linux и расширение php, которые используются в нашей производственной среде. Это включает расширение redis, установленное pecl, поэтому phpredis можно использовать в Laravel.
Потратив немало времени на изучение процесса непрерывной интеграции и настройки файла gitlab ci, я обнаружил следующую ошибку при развертывании образа:
In PhpRedisConnector.php line 126:
Redis::connect() expects parameter 2 to be int, string given
параметр должен быть только порт как int, но каким-то образом преобразован в tcp: //111.111.11.11: 6379
Как указано в документации https://docs.gitlab.com/ee/ci/services/redis.html хост в вашем .env должен быть redis, так что я. Сброс конфигурации во время развертывания привел к тому, что в порту была некоторая строка подключения tcp: //111.111.11.11: 6379, а хост был пуст. Это невозможно изменить ни в нашем приложении, ни в любом используемом нами расширении.
Я использую https://hub.docker.com/_/redis/ в качестве сервис в .gitlab-ci.yml.
...
services:
- name: redis:4
...