【问题标题】:PhpStorm + Docker + ComposerPhpStorm + Docker + Composer
【发布时间】:2019-12-20 12:46:52
【问题描述】:

目前正在处理一个使用docker-compose 创建多容器应用程序的项目。大多数应用程序代码都存在于我的机器上,但在 docker-compose up 期间,composer installnpm install 都在 docker 实例上触发,而不是在我的本地机器上。正如预期的那样,对我的本地机器上的源代码所做的更改会立即反映在 Docker 上,但 PhpStorm 看不到 vendor 文件夹的内容。 vendor 文件夹在 docker-compose 文件中作为卷公开。

有没有办法告诉 PhpStorm Docker 机器上vendor 的内容?目前 PhpStorm 找不到任何 vendor 声明,我无法使用智能。

【问题讨论】:

    标签: docker composer-php phpstorm


    【解决方案1】:

    在 docker 项目中,你必须在 docker 容器中运行你的应用程序或 api,没有必要在本地运行它,你肯定有这样的东西

    volumes:
     - .:/usr/src
     - /usr/scr/vendor
    

    这样,供应商是“只读的”。 你应该放一些代码来更好地帮助你。

    【讨论】:

    • 应用程序在 docker 容器中运行,是的,vendor 文件夹和 src 文件夹都有一个卷,但是它们都标记为 rw,而不仅仅是只读
    【解决方案2】:

    我认为vendor 文件夹也必须在您的 PHPStorm 项目中,否则 PHPStorm 将无法检查它。 所以如果你的 PHPStorm 项目有以下文件夹:

    public
    src
    tests
    vendor
    

    您可以像这样将它们映射到容器中:

        volumes:
          - ./public:/var/www/project/public
          - ./src:/var/www/project/src
          - ./vendor:/var/www/project/vendor
    

    至少我在最近的项目中是这样做的,PHPStorm 和容器都能够在供应商文件夹中找到东西。 即使composer install在容器内运行,它也会将所有依赖项放入PHPStorm可以访问的vendor文件夹中。

    【讨论】:

    • docker-compose.yml 已经定义了以下卷 - vendordir:/var/www/path/to/root/vendor:rw
    • 这个 vendordir 是否命名为 vendor 并在 PHPStorm 项目中?
    猜你喜欢
    • 2012-09-30
    • 2015-12-16
    • 2018-08-19
    • 2022-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2020-01-04
    相关资源
    最近更新 更多