gitlab安装
docker-compose形式
version: '3.6'
services:
web:
image: 'registry.fine.com/kubernetes/gitlab/gitlab-ce:v1'
restart: always
hostname: 'registry.fine.com'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.5.128'
ports:
- '8880:80'
- '6443:443'
- '2222:22'
volumes:
- '/data/app_data/gitlab/config:/etc/gitlab'
- '/data/app_data/gitlab/logs:/var/log/gitlab'
- '/data/app_data/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
启动
docker-compose up -d
配置私有证书
#!/bin/bash
gitlab_cert=/data/app_data/gitlab/config/certs
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=registry.fine.com" -key ca.key -out ca.crt
openssl genrsa -out registry.fine.com.key 4096
openssl req -sha512 -new -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=registry.fine.com" -key registry.fine.com.key -out registry.fine.com.csr
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=registry.fine.com
IP.1=192.168.5.128 # gitlab-ce 服务ip, 缺少gitlab-runner register将认证失败
EOF
openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in registry.fine.com.csr -out registry.fine.com.crt
openssl x509 -inform PEM -in registry.fine.com.crt -out registry.fine.com.cert
[ ! -d ${gitlab_cert} ] && mkdir -p ${gitlab_cert}
cp registry.fine.com.crt registry.fine.com.key registry.fine.com.cert ${gitlab_cert}
配置gitlab.rb
- vim /etc/gitlab/gitlab.rb(对应映射在外部的目录)在文件末尾加上
external_url"https://192.168.5.128"
nginx['redirect_http_to_https']= true
nginx['ssl_certificate']= "/etc/gitlab/certs/registry.fine.com.crt"
nginx['ssl_certificate_key']= "/etc/gitlab/certs/registry.fine.com.key"
重启gitlab-ce
docker-compose restart
git 使用
git跳过证书认证
export GIT_SSL_NO_VERIFY=true
git config --global http.sslVerify "false"
删除本地分支
git branch -d <branch-name>
删除远程分支
git push origin --delete <branch-name>
创建本地分支
git checkout -b <branch-name>
创建远程分支
git checkout -b <branch-name>
git checkout <branch-name>
git push -u origin
git推送步骤
git init
git remote add origin <仓库URL>
git add .
git commit -m “提交说明”
git checkout -b <branch-name>
git checkout <branch-name>
git push -u origin <branch-name>
gitlab-runner register使用
将生成的证书拷贝到gitlab-runner
cp /data/app_data/gitlab/config/certs/* /etc/gitlab-runner/certs
gitlab-runner注册带有私有证书gitlab
gitlab-runner register --tls-cert-file /etc/gitlab-runner/certs/registry.fine.com.cert --tls-ca-file /etc/gitlab-runner/certs/registry.fine.com.crt --tls-key-file /etc/gitlab-runner/certs/registry.fine.com.key