laravel - 通过 Laravel Sail 安装并在端口上可用 Meil​​isearch 不会添加模型索引; date.ms 文件似乎丢失

标签 laravel docker dockerfile laravel-sail meilisearch

我将Meilisearch添加到项目中,现在它的界面可以在浏览器中使用:7700,并且我在浏览器中看到以下内容: enter image description here

我通过 Laravel Sail 实用程序安装了 Meil​​isearch,下面是我的 docker-compose.yml 文件的内容: enter image description here

还有我的.env文件的内容,它与Meilisearch配置相关:

SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=http://127.0.0.1:7700
MEILISEARCH_KEY=masterKey
FORWARD_MEILISEARCH_PORT=7700

现在我尝试使用以下命令添加第一个索引:

sail artisan scout:import "App\Models\<model name>"

我收到错误:

 MeiliSearch\Exceptions\CommunicationException 

Failed to connect to 127.0.0.1 port 7700: Connection refused for "http://127.0.0.1:7700/indexes/<model name>s/documents?primaryKey=id".

我注意到项目中没有data.ms文件。它的出现表明meilisearch已经启动。在一些 docker 教程中我看到过这样的命令:

docker run -p 7700:7700 -v "$(pwd)/data.ms:/data.ms" getmeili/meilisearch"

docker pull getmeili/meilisearch:latest && docker run -it --rm \
        -p 7700:7700 \
        -v $(pwd)/data.ms:/data.ms \
        getmeili/meilisearch:latest

...但我没有自定义的 docker 配置,我有 Laravel Sail!!!!!!

为什么 Mailisearch 在浏览器中运行并在其配置的端口上运行,但我在尝试为模型添加索引时看不到 data.ms 文件并收到错误?请帮助我理解问题并解决它。

最佳答案

问题在于配置不正确。

需要将 .env 文件中的主机地址 127.0.0.1 替换为值“meilisearch”,如下所示:

SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=http://meilisearch:7700
MEILISEARCH_KEY=masterKey

类似地(但这不是问题),有必要将主机地址 127.0.0.1 替换为 docker-compose.yml 文件中“healthcheck”部分中的值“meilisearch”,如下所示:

healthcheck:
    test: ["CMD", "wget", "--no-verbose", "--spider",  "http://meilisearch:7700/health"]
    retries: 3
    timeout: 5s

关于laravel - 通过 Laravel Sail 安装并在端口上可用 Meil​​isearch 不会添加模型索引; date.ms 文件似乎丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71791372/

相关文章:

laravel - 将 Laravel 5 上传到服务器子文件夹

php - 使用 Laravel 和 MSSQL 将 nvarchar 转换为 datetime 数据类型时出错

docker - Jenkins Pipeline是否可以编写/配置单独的Jenkins作业?

Dockerfile:在/tmp 上运行 ssh-agent 时,构建期间权限被拒绝

docker - Kubernetes和Dockerfile

php - UserController.php 中的 FatalErrorException 第 39 行 : Class 'App\Http\Controllers\User' not found

php - 如何从阵列上的数据库获取信息?

docker - 如何使用 elasticsearch 配置 Jaeger?

android - 在Windows上运行模拟器android和docker

php - 具有自定义 docker 镜像 SSH 的 Azure Web 应用程序