【问题标题】:Laravel CLI 'sail artisan' returns 'no such service' after updating 'service name' in docker-compose.ymlLaravel CLI 'sail artisan' 在更新 docker-compose.yml 中的 'service name' 后返回 'no such service'
【发布时间】:2021-05-05 00:48:03
【问题描述】:

通过Laravel Sail 创建一个新的Laravel project 后,一个新的项目会在Docker 容器中创建。当我更新关联的“docker-composer.yml”文件以重命名“laravel.test”服务时,我关闭了它并重建了sails,期望这将使用sail build --no-cache合并我对服务名称的更改。

从那时起,命令sail artisan 返回错误“错误:没有这样的服务:Laravel.test

详尽的搜索没有任何帮助。

【问题讨论】:

    标签: php laravel docker


    【解决方案1】:

    我创建了一个基于 Laravel 安装的定制解决方案。它包括安装 XDebug 和最新的 node.js 和 NPM。它是一个功能齐全的解决方案,还提供所有源代码sail.StonePlayground.com

    我欢迎 cmets。

    --- 上一个答案 ---
    ./vendor/bin/sail 文件中,有几个位置我用我在 'docker-composer.yml' (myApp.local) 中设置的值替换了 'laravel.test'。这也匹配我的 '.env' APP_URL(减去 http://)。现在一切正常!

    我希望这篇文章对可能遇到类似情况的其他人有所帮助。

    更新:我找到了一种更简单的方法来完成此操作,而无需编辑供应商文件。只需将 APP_SERVICE="myApp.local"(或任何您的本地 URL)添加到您的 .env 文件中。

    【讨论】:

    • 绝对有帮助!谢谢。
    • 在 .env 文件中,我将APP_URLAPP_SERVICE 匹配(没有http://),但错误仍然存​​在。我误解你的解释了吗?
    【解决方案2】:

    我找到了一个非常棒的article 关于这个主题和一般的 Larvel Sail。

    读完后我意识到,错误准确地说明了正在发生的事情,就像往常一样。您的 APP_SERVICE 名称必须与您在 docker-compose.yaml 文件中的实际 laravel 应用程序容器的服务名称匹配,默认情况下为 laravel.test。当你重命名它时,执行George 建议的APP_SERVICE .env 变量。不过,这里真正重要的是您的服务名称,而不是 APP_URL

    【讨论】:

      【解决方案3】:

      当我阅读sail customization时,我误读了这一段:

      自定义 Sail 安装后,您可能希望更改 应用程序中 laravel.test 服务的图像名称 docker-compose.yml 文件。 [...] 为 如果您正在使用 laravel.test 服务映像,则尤为重要 在一台机器上开发多个 Laravel 应用程序:

      我认为这意味着我应该重命名 服务名称 并收到与您相同的错误消息,在这种情况下设置 APP_SERVICE 是正确的解决方案。但是,它只声明重命名图像名称。更改docker-compose.yml 中的图像名称 无需添加额外的环境变量即可工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-06
        • 1970-01-01
        • 1970-01-01
        • 2016-03-12
        • 2017-09-13
        • 1970-01-01
        • 1970-01-01
        • 2020-10-11
        相关资源
        最近更新 更多