submodule问题
配置.gitmodules
在一个项目中使用了submodule,拉取下来之后会生成一个.gitmodules文件
[submodule "xxxx"] ==>工程拉取下来后的路径
path =xxxx ==>工程拉取下来后的路径
url = xxxx ==>submodule 工程在gitlab中的地址,默认应该是仓库的绝对路径
在此处,关于url配置。官文表明可以使用绝对地址或者相对地址。
- 如果主项目和子项目在同一个gitlab服务器地址下,可以使用相对地址。主项目:
https://gitlab.xxx.cn/group_name/project-master.git
,子项目地址:https://gitlab.xxx.cn/group_name/project-submodules.git
[submodule "model/project-submodules"]
path = model/project-submodules
url = ../project-submodules.git
- 如果不在同一个服务器上,可以使用绝对地址。主项目:
https://gitlab.aaa.cn/group_name/project-master.git
,子项目地址:https://gitlab.bbb.cn/group_name/project-submodules.git
[submodule "model/project-submodules"]
path = model/project-submodules
url = https://gitlab.bbb.cn/group_name/project-submodules.git
配置.gitlab-ci.yml
variables:
GIT_SUBMODULE_STRATEGY: recursive
确保权限
在上面两个步骤中,需要确保执行上面命令的项目成员,在主项目和子项目中都有项目的 Maintainer 或 Owner 权限。
私有库
有时项目会像使用第三方库那样引入自己写的一个私有库。一般在公司会这样做。这里前提是私有库已经可以正常在本地使用。
dockerfile配置
配置go环境 GOPRIVATE
可以在本地配置,在本地可以先使用docker打包试试
GOPRIVATE=gitlab.xxxx.cn
dockerfile
ENV GOPRIVATE=gitlab.xxxx.cn
ENV CGO_ENABLED=0
RUN git config --global url."https://username:被当作库访问的仓库的访问令牌@gitlab.xxxx.cn".insteadOf "https://gitlab.xxxx.cn"
username应该默认就是auth2