docker搭建gitlab

小鱼儿 2023-03-13 09:09 85阅读 0赞

一、运行gitlab

  1. $ docker run --detach \
  2. --publish 8443:443 --publish 8080:80 --publish 2222:22 \
  3. --name=gitlab \
  4. --restart=always \
  5. --volume /data/gitlab/config:/etc/gitlab \
  6. --volume /data/gitlab/logs:/var/log/gitlab \
  7. --volume /data/gitlab/data:/var/opt/gitlab \
  8. --privileged=true \
  9. gitlab/gitlab-ce-zh:11.1.4

二、修改配置文件

配置web和ssh访问

  1. $ vim /data/gitlab/config/gitlab.rb
  2. external_url 'http://192.168.15.9' # 宿主机ip,设置web访问(http://192.168.15.9:8080)
  3. gitlab_rails['gitlab_ssh_host'] = '192.168.15.9' # 宿主机ip,设置仓库的访问
  4. gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 容器ssh 22端口映射到宿主机的端口2222

配置邮箱(可选),配置了邮箱:

1、新增gitlab用户的时候,会用该邮箱发送重置用户密码到用户邮箱
2、忘记管理员root密码的时候,也可以通过该邮箱找回密码

  1. $ vim /etc/gitlab/gitlab.rb
  2. # 以下配置aliyun邮箱为例
  3. #配置下面,需要配置smtp_tls
  4. #注意gitlab_rails['smtp_tls'] 这个是设定为true
  5. gitlab_rails['smtp_enable'] = true
  6. gitlab_rails['smtp_address'] = "smtp.aliyun.com"
  7. gitlab_rails['smtp_port'] = 465
  8. gitlab_rails['smtp_user_name'] = "tab609@aliyun.com" # 邮箱用户
  9. gitlab_rails['smtp_password'] = "youpassword" # 邮箱密码
  10. gitlab_rails['smtp_domain'] = "smtp.aliyun.com"
  11. gitlab_rails['smtp_authentication'] = "login"
  12. gitlab_rails['smtp_enable_starttls_auto'] = true
  13. gitlab_rails['smtp_tls'] = true
  14. #配置邮箱来源,以及展示的名称
  15. gitlab_rails['gitlab_email_enabled'] = true
  16. gitlab_rails['gitlab_email_from'] = 'tab609@aliyun.com'
  17. gitlab_rails['gitlab_email_display_name'] = 'Gitlab'

三、重启gitlab

  1. # 方法一重启容器
  2. $ docker restart gitlab
  3. # 方法二在容器中执行重启gitlab命令
  4. $ docker exec gitlab gitlab-ctl reconfigure

访问web:http://192.168.15.9:8080
注:首次打开web登录界面需要先设置管理员root账号的密码(密码至少需要8个字符)

四、创建一个仓库测试是否搭建成功

以下1-4步用管理员root账号登录gitlab进行操作

1、创建一个群组

群组

2、创建项目

这里我们创建一个属于dev群组的项目test,这样在dev群组下的用户就会有权限访问该项目仓库了
项目

3、创建一个普通用户

必填项只有:姓名,用户名,邮箱,其他默认就好了,这里我们创建tab609用户
用户

注:如果我们在第二步没有配置gitlab邮箱,那么新创建的用户将不会收到重置密码的邮件,root管理员可以帮该用户设置初始密码

管理区域 —> Users —> tab609 —> 点击编辑

编辑
root用户设置tab609用户的初始密码(密码长度必须大于等于8个字符),把密码告诉tab609用户,tab609就可以用管理员设置的初始密码登录了,首次登录gitlab会提示重置密码

密码

4、把用户拉都群组

把tab609用户拉到dev群组,并给予主程序员权限,这样tab609用户就有权限访问dev群组下的仓库了
dev群

注:可以单独配置某用户在群组中的具体权限,不同权限,拥有对该群组下的仓库操作权限不一样。

5、设置tab609用户的ssh key

以下5-7步用tab609用户登录gitlab进行操作

  1. # step1: 先在要克隆代码的主机上生成ssh key
  2. $ ssh-keygen # 一直按 Enter 键确认即可,会在执行当前 ssh-keygen 命令的用户目录下生成相应文件(ls ~/.ssh)
  3. # step2:把公钥添加到gitlab的tab609用户的ssh密钥中
  4. $ cat ~/.ssh/id_rsa.pub # 复制 ~/.ssh/id_rsa.pub 文件的内容
  5. 如下图

ssh key

6、克隆项目代码

到项目详情copy项目ssh url
ssh url

  1. $ git clone ssh://git@192.168.15.9:2222/dev/test.git
  2. Cloning into 'test'...
  3. remote: Counting objects: 17, done.
  4. remote: Compressing objects: 100% (12/12), done.
  5. remote: Total 17 (delta 1), reused 5 (delta 0)
  6. Receiving objects: 100% (17/17), done.
  7. Resolving deltas: 100% (1/1), done.
  8. # 我们需要先设置以下git的账号和邮箱,可以设置全局的,也可以只针对某仓库local设置
  9. # 针对全局
  10. $ git config --global user.name "tab609"
  11. $ git config --global user.email "tab609@qq.com"
  12. # 针对某仓库设置,如只对test仓库配置特定的账号和邮箱(需要先进到test仓库目录再设置)
  13. $ cd test
  14. $ git config --local user.name "tab609"
  15. $ git config --local user.email "tab609@qq.com"
  16. # 针对某仓库设置账号的应用场景:比如我的电脑访问公司的仓库用户是A,而我个人的github仓库用户是B,那么我们就需要设置局部的git账号而并非全局了

7、提交代码到仓库

  1. # 已配置好git的账号,进入到仓库目录
  2. $ cd test
  3. # 我们touch一个空的hello文件
  4. $ touch hello
  5. $ ls
  6. hello README.md
  7. $ git add hello
  8. $ git commit -m "touch hello file"
  9. $ git push origin master
  10. # 到gitlab页面就可以看到这次的提交了

git常用操作的命令可以查看阮一峰老师的博客

发表评论

表情:
评论列表 (有 0 条评论,85人围观)

还没有评论,来说两句吧...

相关阅读