1. 安装docker 2.安装gitlab

如果内网IP地址为 192.168.0.2

--hostname gitlab.example.com # 改为内网地址 例如:192.168.0.2
3. 修改配置
vim /home/gitlab/config/gitlab.rb
external_url 'https://192.168.0.2'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/192.168.0.2.crt" #别管有没有,先配置
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/192.168.0.2.key" #别管有没有,先配置


gitlab_rails['time_zone'] = 'Asia/Shanghai'
sidekiq['concurrency'] = 8
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 4
prometheus_monitoring['enable'] = false
4.创建证书
vim /home/gitlab/config/ssl/generate_crt.sh #编写生成证书脚本
#!/bin/sh
# 创建证书:
read -p "输入你的内网地址: " DOMAIN
SUBJECT="/C=ZH/ST=Home/L=$DOMAIN/O=$DOMAIN/OU=$DOMAIN/CN=$DOMAIN"
openssl req -subj $SUBJECT  -sha256 -newkey rsa:2048 -nodes -keyout  $DOMAIN.key -x509 -days 3650 -out  $DOMAIN.crt -config ./openssl.cnf -extensions v3_req
docker cp gitlab:/usr/lib/ssl/openssl.cnf openssl.cnf //复制容器的默认配置
vim openssl.cnf #修改配置
req_extensions = v3_req #把这个配置打开

[ v3_req ]


# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names # 添加一行配置

[ alt_names ]# 添加一行配置
IP.1 = 192.168.0.2 # 添加一行配置
#DNS.1 = a.com #如果是内网,没有域名的,不能添加DNS.否则证书出错
chmod 775 ./generate_crt.sh #给权限
./generate_crt.sh #生成证书
docker restart gitlab #重启容器
5.windows 安装证书
scp root@192.168.0.2:/home/gitlab/config/ssl/192.168.0.2.crt D:\a.cer#CMD命令行下载证书到windows

把它导入到"受信任的根证书颁发机构"中

 6.配置gitlab
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password #获取gitlab管理员root的密码

可访问性与控制中修改URL 

 7.Golang 项目使用示例

创建新用户 golanguser=>使用新用户登录gitlab=>新用户创建两个新项目: test1/test2

Widows配置环境变量  

# 运行CMD命令 , 配置环境变量
setx CGO_ENABLED 1
setx GOOS windows
setx GOARCH amd64
setx CC gcc
setx GOPATH D:\DevManager #我这里是这个位置
setx GOPROXY https://goproxy.cn,direct #使用代理
setx GO111MODULE on
setx GOINSECURE 192.168.0.2#指定不检查证书的地址
setx GOPRIVATE 192.168.0.2 #指定不使用代理的地址
setx GOROOT D:\go #我这里是这个位置
# 运行CMD命令,下拉test项目
mkdir %GOPATH%\src\golanguser\192.168.0.2
cd %GOPATH%\src\golanguser\192.168.0.2
D: #切换到D盘,我这里是D盘
git clone https://192.168.0.2/golanguser/test1.git
git clone https://192.168.0.2/golanguser/test2.git
//在test1文件夹中,新建test1.go文件
package test1

import (
	"fmt"
)


//首字母要大写
func Hello(){
    fmt.Println("我是测试1")
}
//在test2项目文件夹中,创建一个test2.go文件
package test2
import(
    "192.168.0.2/golanguser/test1" #这里不会走代理
    "fmt"
    "github.com/dodoao/gt" #这里会走代理
)

func test2(){
    test1.Hello()
    fmt.Println(gt.Get_current_directory())
}
#运行CMD命令,初始化
cd %GOPATH%/src/192.168.0.2/golanguser/test1 #
D: #切换到D盘,我这里是D盘
go mod init
go get -d -v ./... #循环下载所有依赖
cd %GOPATH%/src/192.168.0.2/golanguser/test2 #
D: #切换到D盘,我这里是D盘
go mod init
go get -d -v ./... #循环下载所有依赖,只要这里成功完成了,就成功了

基本用法

       

git clone https://username:password@192.168.248.161/xiaomeing/dba.git