grl*_*rll 5 git git-submodules docker docker-compose visual-studio-code
我正在使用 vs-code devcontainer功能创建以下设置的容器化开发环境:
root_folder (main git repository)
|- .git
|- docker-compose.yml
|- @myapi-submodule (django python API)
|- .devcontainer.json
|- @myclient-submodule (react js client)
|- .devcontainer.json
Run Code Online (Sandbox Code Playgroud)
在docker-compose.yml我分别创建2个服务api并client挂载它们相应的子模块文件夹。
然后我可以在 2 个单独的窗口中“打开容器中的文件夹...”,除了 git 之外,一切都运行良好。我需要能够进行更改,从容器提交更改分支...,但由于仅安装了子模块文件夹,所以我根本无法使用 git。
在这种情况下我有什么选择?如何在没有父文件夹的情况下从容器修改子模块?
最简单的解决方案是在根项目目录中创建一个 .devcontainer 目录,并在其中创建一个新的 docker-compose.yml (或者如果可能的话扩展现有的目录)。
\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .git\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .devcontainer\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 devcontainer.json\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 docker-compose-extend.yml # either extend current docker-compose file\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 docker-compose.yml # or create a new one\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Dockerfile # your new docker-compose.yml can also use different Dockerfile(s)\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 @myapi-submodule (django python API)\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 @myclient-submodule (react js client)\nRun Code Online (Sandbox Code Playgroud)\n该devcontainer.json文件现在应该使用新的 docker-compose 文件。您还应该考虑将 .devcontainer 目录添加到gitignore