Я пытаюсь использовать Docker-контейнер для связи с Memcached-контейнером, но $ serve ['port'] получает полный URL
здесь для получения дополнительной информации
laravel .env
MEMCACHED_HOST=memcached
MEMCACHED_PORT=11211
Докер для проекта laravel
docker run --name DAC -d --link mysql57:mysql -p 8082:80 -v --link memcached:memcached dac
Докер memcached изображения используют официальное memcached: последний https://hub.docker.com/_/memcached
docker run --name memcached -d memcached
но, к сожалению, когда laravel MemcachedConnector-> connect, я получаю сообщение об ошибке
/var/www/html/dataAnalysisControl/vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php
public function connect(array $servers, $connectionId = null, array $options = [], array $credentials = [])
{
$memcached = $this->getMemcached(
$connectionId, $credentials, $options
);
if (! $memcached->getServerList()) {
foreach ($servers as $server) {
$memcached->addServer(
$server['host'], $server['port'], $server['weight']
);
}
}
return $memcached;
}
"Memcached::addServer() expects parameter 2 to be int, string given"
тогда я обнаружил, что $ server ['port'] обычно не получается
там я сбросил серверы $ и нашел этот порт, он должен быть 11211
, но яполучил tcp: //172.17.0.4: 11211, поэтому получаю строку с указанной ошибкой
array:1 [▼
0 => array:3 [▼
"host" => "memcached"
"port" => "tcp://172.17.0.4:11211"
"weight" => 100
]
]
, поэтому я пытаюсь проверить исходное соединение
$m = new Memcached();
$m->addServer('memcached', 11211);
$version = $m->getVersion();
$m->set('key', 'test');
$get_value = $m->get('key');
dd($version,$get_value)
/////////dump///////
array:1 [▼
"memcached:11211" => "1.5.19"
]
'test'
похоже, что memcached соединение не проблема
так ясно, я глупо пропустить шаг где-то здесь.
Я надеюсь, что кто-то может помочь мне дать мне решение.