文章目录
一、gitlab简介
GitLab 是由 GitLab Inc.开发,一款基于 Git 的完全集成的软件开发平台(fully 集成软件 development platform)。另外,GitLab 且具有wiki以及在线编辑、issue跟踪功能、CI/CD 等功能。
二、docker搭建gitlab
1、将容器内的/etc/gitlab
拷贝到宿主机本地
/etc/gitlab
是用来配置gitlab各种配置的,需要将容器内/etc/gitlab
配置文件映射出来方便以后修改。
cyf@KobeBryant:~/docker/gitlab$ docker run --rm -d --name gitlab twang2218/gitlab-ce-zh:11.0
Unable to find image 'twang2218/gitlab-ce-zh:11.0' locally
11.0: Pulling from twang2218/gitlab-ce-zh
3620e2d282dc: Pull complete
ef22f5e4b3b2: Pull complete
.....
cyf@KobeBryant:~/docker/gitlab$ docker cp gitlab:/etc/gitlab .
cyf@KobeBryant:~/docker/gitlab$ mv gitlab/ config
cyf@KobeBryant:~/docker/gitlab$ ls
config runner
2、修改宿主机/etc/hosts
配置
添加如下配置,使宿主机能够识别gitlab.cyf.com
127.0.0.1 localhost
127.0.1.1 KobeBryant
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.10.24 gitlab.cyf.com #添加此行
3、启动gitlab容器
不太懂docker的可以参考我的一篇博客:docker常用命令总结
cyf@KobeBryant:~/docker/gitlab$ docker run -d -hgitlab.cyf.com \
--add-host gitlab.cyf.com:192.168.10.24 \
-p80:80 -p443:443 -p22:22 \
-v /home/cyf/docker/gitlab/config:/etc/gitlab \
-v /home/cyf/docker/gitlab/data:/var/opt/gitlab \
-v /home/cyf/docker/gitlab/logs:/var/log/gitlab \
--name gitlab \
twang2218/gitlab-ce-zh:11.1
134734fec8cbe43555e25e9d7f6b687205c4a2e014e2b331a76cd34fe2b640e5
4、查看日志观察启动情况
当有如下日志输出时,证明gitlab启动完成
cyf@KobeBryant:~/docker/gitlab$ docker logs gitlab --tail 300 -f
.....
- restart service service[postgres-exporter]
* ruby_block[restart postgres-exporter svlogd configuration] action create
- execute the ruby block restart postgres-exporter svlogd configuration
* ruby_block[reload postgres-exporter svlogd configuration] action create
- execute the ruby block reload postgres-exporter svlogd configuration
Running handlers:
Running handlers complete
Chef Client finished, 404/590 resources updated in 02 minutes 32 seconds
gitlab Reconfigured!
Checking for an omnibus managed postgresql: OK
Checking for a newer version of PostgreSQL to install
No new version of PostgreSQL installed, nothing to upgrade to
==> /var/log/gitlab/logrotate/current <==
==> /var/log/gitlab/prometheus/current <==
.....
三、gitlab简单使用
可以用ip地址+端口或者用自定义的域名gitlab.cyf.com
1、首页设置root密码
浏览器打开地址后,会进入到一个设置密码界面如下图,需要设置长度大于等8的root用户的密码
2、gitlab首次登录主页面
使用root用户和上一步设置的root密码登录到gitlab服务器,首次登录到gitlab服务器的主页如下图
3、新建项目
新建一个eureka项目,点击创建一个项目,进入到新建项目界面,填写项目名称即可:
4、上传本地项目到gitlab服务器
新建项目后,会有相关git命令提示,使用第三种方式:
cyf@KobeBryant:~/git$ cd eureka/
cyf@KobeBryant:~/git/eureka$ git init
已初始化空的 Git 仓库于 /home/cyf/git/eureka/.git/
cyf@KobeBryant:~/git/eureka$ git remote add origin http://192.168.10.24/root/eureka.git
cyf@KobeBryant:~/git/eureka$ git add .
cyf@KobeBryant:~/git/eureka$ git commit -m "Initial commit"
[master (根提交) cf051d6] Initial commit
15 files changed, 840 insertions(+)
create mode 100644 .gitignore
create mode 100644 .mvn/wrapper/MavenWrapperDownloader.java
create mode 100644 .mvn/wrapper/maven-wrapper.jar
create mode 100644 .mvn/wrapper/maven-wrapper.properties
create mode 100644 Dockerfile
create mode 100644 README.md
create mode 100644 docker-compose.yml
create mode 100755 mvnw
create mode 100644 mvnw.cmd
create mode 100644 pom.xml
create mode 100644 src/main/java/com/allqj/eureka_server/EurekaServerApplication.java
create mode 100644 src/main/resources/application-cluster2.yml
create mode 100644 src/main/resources/application-cluster3.yml
create mode 100644 src/main/resources/application.yml
create mode 100644 src/test/java/com/allqj/eureka_server/EurekaServerApplicationTests.java
cyf@KobeBryant:~/git/eureka$ git push -u origin master
Username for 'http://192.168.10.24': root
Password for 'http://root@192.168.10.24':
对象计数中: 31, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (23/23), 完成.
写入对象中: 100% (31/31), 75.30 KiB | 75.30 MiB/s, 完成.
Total 31 (delta 1), reused 0 (delta 0)
To http://192.168.10.24/root/eureka.git
* [new branch] master -> master
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。
5、设置ssh密钥
将本地的id_rsa.pub
文件内容上传的gitlab服务器,这样就可以实现免密上传项目和拉取项目
四、gitlab CI/CD流水线
详情见我的另一篇博客:docker容器搭建----gitlab-runner自动化部署
简单运行过程如下图: