首页 > 解决方案 > 如何使用 forge 用户将 ray 连接到 laravelsai docker 容器?

问题描述

我正在尝试将我的 ray 应用程序连接到在 docker 容器上运行的项目。我正在使用 Macbook Pro。我已按照https://spatie.be/docs/ray/v1/environment-specific-configuration/docker给出的说明进行操作。

我也遵循了所有的光线安装说明,通过输入

composer require spatie/laravel-ray

将我的 ray.php 的 remote_path 设置为

'/var/www/html' 

及其 local_path 到

'/Users/me/test-projects/project/'

我还更新了我的项目的 docker-compose.yaml 以包含https://spatie.be/docs/ray/v1/environment-specific-configuration/docker推荐的 extra_hosts: 行。

services:
    laravel.test:
        build:
            context: ./vendor/laravel/sail/runtimes/8.0
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: sail-8.0/app
        ports:
            - '${APP_PORT:-8000}:80'
        environment:
            WWWUSER: '${WWWUSER}'
            LARAVEL_SAIL: 1
        volumes:
            - '.:/var/www/html'
        networks:
            - sail
        extra_hosts:
          - "host.docker.internal:host-gateway"

如果这很重要,我确实有自定义 ssh 条目。我有一个 id_rsa_personal 密钥和一个 id_rsa_work rsa 密钥,而不仅仅是 ray 的“服务器”配置默认查找的 id_rsa 密钥,但即使将“私钥路径”更改为现有私钥,我也会得到

Error: Error invoking remote method 'connectSsh': Error: connect ECONNREFUSED 127.0.0.1:22

如果有人知道为什么我无法将 ray 连接到 docker 实例,我将不胜感激。

更新

在通过 ray 的源代码进行一些挖掘和死亡之后,我发现当 ray 尝试 cURL 到我的主机时,它得到:无法解析主机:host.docker.internal。我不知道为什么会这样,因为正如我所说,我确实在我的 docker-compose.yaml 文件中设置了 extra_hosts: - "host.docker.internal:host-gateway"。

标签: dockerssh-keysraylaravel-sail

解决方案


推荐阅读