临文乍了了,彻卷兀若无。这篇文章主要讲述gitlab 搭建go modules私有仓库相关的知识,希望能为你提供帮助。
gitlab 搭建go modules私有仓库
重点:【gitlab 搭建go modules私有仓库】1.go get需要用域名的方式。
2.go get默认访问的是https。
目前策略go get --->
nginx(ssl 反代gitlab)-->
gitlab
实现
go get gittest.xxxx.com/Goland/gotogit
以gitlab(192.168.128.128)仓库为例测试
1.域名准备
1.1 域名分配
1.2域名解析
gittest.xxxx.com192.168.128.128
2.准备https(gittest.xxxx.com)反向代理?2.1 申请ssl证书
?2.2 配置nginx代理
?2.3 访问https://gittest.xxxx.com测试
server
listen443 ssl;
server_namegittest.xxxx.com;
ssl_certificate/etc/nginx/cert/gittest.xxxx.com_chain.crt;
ssl_certificate_key/etc/nginx/cert/gittest.xxxx.com_key.key;
ssl_session_timeout5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
if ($args ~* "^go-get=1")
set $condition goget;
if ($uri ~ "(/[^/]+/[^/]+)(/.*)?")
set $condition "$conditionpath";
if ($condition = gogetpath)
return 200 "<
!DOCTYPE html>
<
html>
<
head>
<
meta content=gittest.xxxx.com$1 git https://gittest.xxxx.com$1.git name=go-import>
<
/head>
<
/html>
";
location /
proxy_pass http://192.168.128.128:8088/;
#gitlab的实际http地址
3.gitlab上 开启go-proxy 功能
sudo gitlab-rails console
#执行
Feature.enable(:go_proxy)
4.创建api token
创建个人访问令牌(注意要有仓库权限)
4.1.点击右上角,选择您的头像。
4.2.选择settings。
4.3.点击左侧边栏上,选择Access Tokens。
4.4.输入令牌的名称和可选的到期日期。
4.5.勾选api Access your API。
4.6.粘贴生成的token即可。
ku8aG8E1MxnHA-6nH4at
4.gitlab仓库准备
http://192.168.128.128:8088/Goland/gotogit.gitgo get gittest.xxxx.com/Goland/gotogit
?
5.gitlab仓库打tag(一定要)
git tag <
tagName>
//创建本地tag
git push origin <
tagName>
//推送到远程仓库
例如: v1.0.0
6.项目中 go.mod 中路径要与url路径一致
module gittest.xxxx.com/Goland/gotogit
7.gitlab主机下配置 ~/.netrc
linux and windows(通过bash执行)
cat >
~/.netrc<
<
EOF
machine gittest.xxxx.com login felix password ku8aG8E1MxnHA-6nH4at
EOF
#chmod 600 ~/.netrc#windows执行(cmd)
#echo "machine gittest.xxxx.com login felix password ku8aG8E1MxnHA-6nH4at">
%HOMEPATH%\\.netrc
8.go配置goprivate
GOPRIVATE=gittest.xxxx.com
9.安装调试
go get gittest.xxxx.com/Goland/gotogit
10.项目导入
package mainimport "gittest.xxxx.com/Goland/gotogit"
func main()
seanbao.SeanPrint()
11.加餐如果不知道go get具体执行的步骤,那么就自己根据报错,curl去测试。你看回应信息。
curl-s https://gittest.xxxx.com/Goland/gotogit?go-get=1
参考:Gitlab下私有Go modules的搭建配置
Using " go get" on a personal git repo
https://docs.gitlab.com/ee/user/packages/go_proxy/
推荐阅读
- 重要的ui组件——Behavior
- Django+uwsgi在linux和windows上的部署
- Android 控件架构与自定义控件详解
- Android使用 SO 库时要注意的一些问题
- WordPress自定义程序在自定义程序界面中可完美运行,但在实际设计中却无法运行
- WordPress Customizr主题现代风格-子主题和覆盖模板
- WordPress-定制程序设置会覆盖以前的设置
- WordPress的自定义器隐藏自定义section()
- WordPress自定义器自定义控件传输postMessage不起作用