Я работаю над конфигурацией 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
параметр должен быть только портом в качестве целого, но каким-то образом превращаться в 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
...