博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker安装运行Gitlab(非默认端口教程)
阅读量:3950 次
发布时间:2019-05-24

本文共 4482 字,大约阅读时间需要 14 分钟。

Docker安装运行Gitlab (非默认端口教程)

一、下载gitlab的docker镜像

英文版

docker pull gitlab/gitlab-ce

中文版

docker pull twang2218/gitlab-ce-zh

二、运行gitlab镜像

docker run \ -d \ -p 99:22 \ -p 6443:443 \ -p 6080:80 \ --name gitlab \ --hostname 10.95.11.119 \ --restart unless-stopped \ -v $PWD/gitlab/data/etc:/etc/gitlab \ -v $PWD/gitlab/data/log:/var/log/gitlab \ -v $PWD/gitlab/data/data:/var/opt/gitlab \ gitlab/gitlab-ce

已经测试过环境变量的启动方式,如果使用此方式启动,可以跳过第三步(修改配置),如果不使用此方式,必须完成第三步。

docker run \ -d \ -p 99:22 \ -p 6443:443 \ -p 6080:80 \ --name gitlab \ --hostname 10.95.11.119 \ --restart unless-stopped \ -v $PWD/data/etc:/etc/gitlab \ -v $PWD/data/log:/var/log/gitlab \ -v $PWD/data/data:/var/opt/gitlab \ -v /etc/localtime:/etc/localtime:ro \ --env GITLAB_OMNIBUS_CONFIG="external_url='http://10.95.11.119:6080'; gitlab_rails['gitlab_ssh_host'] = '10.95.11.119'; gitlab_rails['gitlab_shell_ssh_port'] = 99" \ --env TZ=Asia/Shanghai \ twang2218/gitlab-ce-zh

三、修改配置

按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb和gitlab.yml,这两个配置文件都已经被映射在宿主机下,可使用find命令查找。

(有资料显示可以通过环境变量传入容器中。可参考: )

1.修改gitlab.rb

vim ./data/etc/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号默认为80external_url 'http://10.95.11.119:6080'# 配置ssh协议所使用的访问地址和端口gitlab_rails['gitlab_ssh_host'] = '10.95.11.119'# 此端口是run时22端口映射的99端口gitlab_rails['gitlab_shell_ssh_port'] = 99:wq #保存配置文件并退出

修改完可以查看确认一下。

grep -v ^# ./data/etc/gitlab.rb | grep -v ^$

输出如下:

external_url 'http://10.95.11.119:6080'gitlab_rails['gitlab_ssh_host'] = '10.95.11.119'gitlab_rails['gitlab_shell_ssh_port'] = 99

2.修改gitlab.yml

vim ./data/data/gitlab-rails/etc/gitlab.yml
gitlab:    ## Web server settings (note: host is the FQDN, do not include http://)    host: 10.95.11.119     port: 6080    https: false    # Uncommment this line below if your ssh host is different from HTTP/HTTPS one    # (you'd obviously need to replace ssh.host_example.com with your own host).    # Otherwise, ssh host will be set to the `host:` value above    ssh_host: 10.95.11.119    :wq #保存配置文件并退出

3.重启gitlab容器

docker exec -it gitlab gitlab-ctl restart

四、创建项目

示例:

1.启动 GitLab 后,第一次访问时,会要求设置 root 用户的密码,密码不得小于8位。设置好后,就可以登录使用了。
在这里插入图片描述
2.下面我们就可以新建一个项目了,点击Create a project
在这里插入图片描述
创建完成后:
在这里插入图片描述

五、设置ssh

1.打开本地终端,使用如下命令生成ssh公钥和私钥对

ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa

查看

cat ~/.ssh/id_rsa.pub

如下所示:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7VfTn/kdLsYJM9fdaJUrYtVcEZIsM/IQ56sFgHbevANAhf7GUpJXr3k0PFf4tidTig0QFzkybC+GnROyiu04XJ5xpWtUNQx9DqHSJ3mvT3zEOeuXhXpN8RcGp6navCLzN2CnymsPkHIo/lbKfKSFf5Kk2AdMMHpfsVFxoT6yYaMC+jOhDf3xJEuPpRMHdyqirU5Rclhb8Nzmi2IfrLSjZNMVLHsEkW2mVyVX7DT3LT+q5MbM/gohRU4+DRFc/wOgEWwKFmoGt7YMi+TnGI5gCakJe7CGFSr6wmMfl2ZaiWc9IeytJcPSJmV361mMdGH4RB9QV9jp0aYZfUDeZfTa7 root@adot-All-Series

2.打开gitlab,找到Profile Settings–>SSH Keys—>Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框

在这里插入图片描述
在这里插入图片描述

六、克隆代码测试

1.选择一个需要克隆的项目,进入

在这里插入图片描述
2.创建一个目录用于测试

mkdir /testcd /testgit initgit config --global user.name "你的名字"git config --global user.email "你的邮箱"

3.首先使用HTTP方式(gitlab直接复制,无需修改)

git clone http://10.95.11.119:6080/root/airport.git

输出如下为成功:

Cloning into 'airport'...Username for 'http://10.95.11.119:6080': 用户名Password for 'http://root@10.95.11.119:6080': 密码remote: Counting objects: 6, done.remote: Compressing objects: 100% (4/4), done.remote: Total 6 (delta 0), reused 0 (delta 0)Unpacking objects: 100% (6/6), 550 bytes | 550.00 KiB/s, done.

4.SSH方式

如果是默认22端口,gitlab直接复制,无需修改:

git clone git@10.95.11.119:root/airport.git

修改端口后,需要明确使用 ssh:// 的 URL 方式。

git clone ssh://git@10.95.11.119:99/root/airport.git

加入了ssh:// 和 端口99

输出如下为成功:

Cloning into 'airport'...The authenticity of host '[10.95.11.119]:99 ([10.95.11.119]:99)' can't be established.ECDSA key fingerprint is SHA256:3El3VgnzdXoCAtuW5aALWVlV8nik2YTkES5TOTkVwjE.Are you sure you want to continue connecting (yes/no)? yes  #第一次连接会出现Warning: Permanently added '[10.95.11.119]:99' (ECDSA) to the list of known hosts.remote: Counting objects: 6, done.remote: Compressing objects: 100% (4/4), done.remote: Total 6 (delta 0), reused 0 (delta 0)Receiving objects: 100% (6/6), done.

5.创建一个index.html用来模拟开发写代码并提交

vim index.html
    
Document

Test

6.提交仓库

git add index.htmlgit commit -m "add index.html"git push origin master

以下输出为成功:

Counting objects: 4, done.Delta compression using up to 4 threads.Compressing objects: 100% (3/3), done.Writing objects: 100% (3/3), 382 bytes | 0 bytes/s, done.Total 3 (delta 0), reused 0 (delta 0)To git@192.168.1.121:root/test.git   5b44e15..1cdcea5  master -> master

7.验证查看gitlab上是否有提交的index.html

转载地址:http://tthwi.baihongyu.com/

你可能感兴趣的文章
Android Package and Manifest File
查看>>
Creating Multiple APKs with 2+ Dimensions 创建两种以上屏幕尺寸多apk支持
查看>>
Abstracting the New APIs 抽象出新的API
查看>>
Proxying to the New APIs 代理新的API
查看>>
Creating an Implementation with Older APIs 用较早版本的APIs实现抽象类
查看>>
Using the Version-Aware Component 使用版本识别组件
查看>>
Enhancing Security with Device Management Policies 加强安全与设备管理策略 Developing for Enterprise
查看>>
Advertising without Compromising User Experience 不降低用户体验的广告
查看>>
Planning Screens and Their Relationships 规划屏幕和它们的关系
查看>>
Planning for Multiple Touchscreen Sizes 规划多个触摸屏尺寸
查看>>
Providing Descendant and Lateral Navigation 提供下一代和横向导航
查看>>
GPS 0183协议GGA、GLL、GSA、GSV、RMC、VTG解释 + 数据解析
查看>>
android如何使得电阻屏在第一次开机时自动叫起屏幕校准程序
查看>>
android如何实现:当开启图案解锁时,取消滑动解锁
查看>>
Providing Ancestral and Temporal Navigation 设计高效的应用导航
查看>>
Putting it All Together: Wireframing the Example App 把APP例子用线框图圈起来
查看>>
Implementing Lateral Navigation 实现横向导航
查看>>
Implementing Ancestral Navigation 实现原始导航
查看>>
Implementing Temporal Navigation 实现时间导航
查看>>
Responding to Touch Events 响应触摸事件
查看>>