前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >持续集成系列(I)——享玩Docker之GitLab

持续集成系列(I)——享玩Docker之GitLab

作者头像
IT技术小咖
修改2019-10-21 13:39:57
1.2K0
修改2019-10-21 13:39:57
举报
文章被收录于专栏:码上修行码上修行

Docker 自2013年以来非常火热,无论是从 github 上的代码活跃度,还是 Redhat 在 RHEL6.5 中集成对 Docker 的支持,就连 Google 的 Compute Engine 也支持 docker 在其之上运行。下面科普一下Docker究竟是什么?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

那么持续集成系列实战第一篇就来了,小伙伴要不要和我一起玩一玩docker呢?以下是基于Mac系统进行的实操演示:

[题外话:Linux 是服务器主流系统,MacOS 低层是 Unix 系统,操作几乎一样]

  1. 通过docker拉取gitlab镜像

Mac系统打开iTerm软件或是自带终端app,前提是你的Mac系统已经安装过docker软件,输入命令如下:

[题外话:Docker安装不是本篇的重点,请自行百度]

# gitlab-ce表示稳定版本,后面不加版本号则默认pull最新的latest版本
docker pull gitlab/gitlab-ce

拉取gitlab镜像成功,见下图

  1. 在宿主机创建挂载文件目录 mac:系统不建议挂载根目录系统文件,所以在用户目录下创建挂载文件夹
# 使用非root用户
cd ~
# 创建文件夹
mkdir myDocker
cd mydocker
mkdir gitlab
cd gitlab
mkdir config
mkdir logs
mkdir data

[题外话:linux系统在宿主机器 创建 存储 gitlab 相关文件的文件夹的命令如下:

#切换root用户 $ su root #创建文件夹 $ mkdir /myDocker #修改文件夹权限 $ chown -R [user] /myDocker #退出root用户 $ exit #进入myDocker目录 $ cd /myDocker #创建相应目录如下 $ mkdir config $ mkdir logs $ mkdir data ]

  1. 运行 以mac系统操作运行gitlab镜像:

3.1 第一种方式:run运行

docker run -d -p 8443:443 -p 8090:80 -p 222:22 --name gitlab --restart always -v /Users/xxx/myDocker/gitlab/config:/etc/gitlab -v /Users/xxx/myDocker/gitlab/logs:/var/log/gitlab -v /Users/xxx/myDocker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
# -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录

3.2 第二种方式:docker-compose 运行。第一种运行方式比较麻烦,需要记住一长串的运行参数;使用docker-compose 运行,可配置运行参数,灵活方便,最主要的是可运行一系列容器。

把上述运行参数转成docker-compose.yml文件如下

version: '3'
services:
  gitlab:
    ports:
    - "8443:443"
    - "8090:80"
    - "222:22"
    volumes:
    - glConf:/etc/gitlab
    - glLogs:/var/log/gitlab
    - glData:/var/opt/gitlab
volumes:
  glConf:/Users/xxx/myDocker/gitlab/config
  glLogs:/Users/xxx/myDocker/gitlab/logs
  glData:/Users/xxx/myDocker/gitlab/data

4. gitlab容器启动成功 在浏览器中输入地址:127.0.0.1:8090,访问成功!首次打开GitLab登陆页面需修改密码(默认gitlab管理员用户名root),在Change your password输入框内修改密码为12345678(最少8个字符)

[题外话:如果登陆页面出现,请忽略以下内容! 如果容器启动后一直访问ip:8090,访问不到,查看日志

docker logs -f gitlab

错误如下:分析是项目存储目录权限问

Error executing action `create` on resource 'storage_directory[/var/opt/gitlab/git-data/repositories]'

解决方法一:进入容器,更改文件夹权限

chmod 2770 /var/opt/gitlab/git-data/repositories
gitlab-ctl reconfigure
gitlab-ctl restart

我这不知道什么原因进不去启动失败的gitlab容器,所以采取如下解决方式。

解决方法二:更改数据存储目录

vim gitlab/conf/gitlab.rb

修改 git_data_dirs 如下:

git_data_dirs({
   "default" => {
#     "path" => "/mnt/nfs-01/git-data"
     "path" => "/data/gitlab"
    }
 })

解决完,重启容器

docker restart gitlab

访问ip:8090,成功!登陆页面首先需要修改密码 ]

5. 通过用户名和密码登录gitlab

5.1 root用户登录后可以修改密码

5.2 通过首页注册gitlab用户

注册成功!

自行安装git,生成git密匙,添加到 gitlab

ls ~/.ssh

有则直接使用,不存在则生成,输入下面命令,一路回车键

cd ~/.ssh
ssh-keygen -t rsa -C "your_email@youremail.com"

设置SSH Keys

进入Welcome to GitLab页面,可以创建项目或是创建组,便于项目和项目组成员管理,见下图。

点击 Create a group,组名为AiSmart4j-Project

在AiSmart4j-Project组下点击New project,创建SpringBoot-Demo项目

创建后,发现 clone 的 IP 如下不是我们想要的

修改 IP

# 进入容器
docker exec -it gitlab /bin/bash
# 更改 IP
vim /etc/gitlab/gitlab.rb

通过“/”+关键字“GENERATED_EXTERNAL_URL”搜索

重启容器即可

# 所有容器
docker ps -a
# 停止容器
docker stop [容器id]
# 启动容器
docker start [容器id]

创建成功,可用如下命令,克隆到本机,至此 gitlab 简单使用告一断落

式 ID 生成器如何选择?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码上修行 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档