【发布时间】:2014-11-25 23:04:13
【问题描述】:
我使用crane 来编排我的容器,并且我有一个 git 子模块用于我的项目源(一个 NodeJS 应用程序)。当我在我的项目根目录中尝试bower install 时运行我的容器时,会发生此错误:
bower jquery#~2.1.1 ECMDERR Failed to execute "git ls-remote --tags --heads git://github.com/jquery/jquery.git", exit code of #128
Additional error details:
fatal: Not a git repository: ../../.git/modules/src/web
这是我的crane.yml 配置文件:
containers:
db:
dockerfile: images/db
image: project/db
run:
detach: true
web:
dockerfile: images/web
image: project/web
run:
volume: ["src/web:/src"]
publish: ["8000:8000"]
link: ["db:mongo"]
detach: true
这是我的fig.yml
db:
build: images/db
web:
build: images/web
volumes:
- src/web:/src
links:
- db:mongo
ports:
- "8000:8000"
奇怪的是,当我将音量设置在当前目录之外(例如../myproject)时,它可以工作。但我真的需要在我的存储库中有一个子模块
编辑
如果我使用命令行它不起作用。所以它与无花果或起重机无关,但可能与 Docker、bower 或 git 的工作方式有关。
注意
- 我在 Archlinux 上
- 我也试过Docker fig,它会产生同样的错误
感谢您的帮助!
【问题讨论】:
-
你发过
git submodule init,git submodule update吗? -
问题是由于repo没有正确初始化子模块引起的。每个 git 子模块都有自己独立的存储库,
git submodule机器在.git/modules/子目录中创建它的克隆,模块的工作目录引用该克隆存储库。所以你遇到的错误意味着存储库没有正确克隆,要么是因为你忘记了这样做,要么是因为某种原因它无法初始化 -
我做了一个
git submodule add git@github.com:kokaz/myrepo src/web、git submodule init、git submodule update。当我使用 Docker CLI 运行容器时它运行良好,即使它是子模块但不是通过我的协调器
标签: git containers docker bower git-submodules