You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Composer容器的vendor目录挂载至另一主机服务器容器

解决Composer容器挂载目录为空的问题

关键原因

Composer的install命令依赖已存在的composer.json文件来安装依赖并生成vendor目录。如果宿主机挂载目录/volume1/docker/devserver/external-includes本身是空的,容器执行install不会自动生成composer.json,自然不会有任何文件输出到挂载目录。

分步解决方案

1. 先在宿主机挂载目录准备composer.json

直接在宿主机的目标目录创建或上传composer.json文件。如果是新项目,可手动创建基础结构:

{
    "require": {
        // 示例:添加你需要的依赖
        "phpmailer/phpmailer": "^6.9"
    }
}

或者通过Composer容器初始化项目:

docker run --rm -v /volume1/docker/devserver/external-includes:/app composer init --name="your/project-name" --require="phpmailer/phpmailer:^6.9" --no-interaction

2. 验证Composer容器的执行权限

你配置了PUID=1029和GUID=100,需确保宿主机挂载目录的所有者匹配,否则容器无读写权限:

  • 检查目录权限:
ls -ld /volume1/docker/devserver/external-includes
  • 修正权限(如果不匹配):
chown 1029:100 /volume1/docker/devserver/external-includes

3. 查看容器日志排查错误

执行以下命令查看Composer容器的运行日志,确认是否有报错(如找不到composer.json、权限不足等):

docker logs composer

4. 确认开发服务器容器的挂载配置

确保开发服务器容器的volumes配置和Composer容器一致,共享同一个宿主机目录:

services:
  dev-server:
    # 你的开发服务器镜像配置
    volumes:
      - /volume1/docker/devserver/external-includes:/app

5. 重新运行Composer容器

完成上述步骤后,重新启动Composer容器执行安装:

docker-compose up -d composer

内容的提问来源于stack exchange,提问作者PHP Addict

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 20:22:35