您现在的位置是:首页 > 正文

centos7下使用docker安装gitlab【转】

2024-02-01 02:55:02阅读 2

环境背景:

Docker化已经成为一种热门,记录一下使用docker引擎安装gitlab的过程。

测试环境:

系统 软件 依赖
CentOS 7.4 GitLab(latest) docker-ce 18

 

 

 

安装过程:

 1. 安装docker引擎并启动

[root@server-10 ~]# yum install docker-ce -y    //需要去官方下载docker.repo文件
[root@server-10 ~]# systemctl enable docker
[root@server-10 ~]# systemctl start docker

 

2. 获取gitlab镜像包

[root@server-10 ~]# docker pull gitlab/gitlab-ce    //里面集成的东西较多,镜像可能比较大

查看下载好的镜像

[root@server-10 logs]# docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ce                          latest              991cd608c116        2 weeks ago         1.59GB

 

3. 在本机准备gitlab工作目录

[root@server-10 ~]# mkdir -p /data/docker/gitlab/{config,data,logs}

以上在本机建立的3个目录是为了gitlab容器通过挂载本机目录启动后可以映射配置文件,数据文件,日志文件到本机,然后后续就可以直接在本机查看和编辑了,不用再进容器操作。

 

4. 启动gitlab(关键步骤)

docker run -d --name gitlab --hostname gitlab --restart always -p 4443:443 -p 8888:80 -p 2222:22 -v /data/docker/gitlab/config:/etc/gitlab  -v /data/docker/gitlab/data:/var/opt/gitlab -v /data/docker/gitlab/logs:/var/log/gitlab gitlab/gitlab-ce:latest

 说明:

-d:后台运行

--name:设置容器的名字;

--hostname:设置容器内主机的名字;

--restart:设置容器的重启策略,可选项: no | on-failure[:max-retries] | always | unless-stopped ;

-p(小写字母):映射端口,形式:[hostPort:]containerPort,如果不加主机端口,那么会在主机上生成随机端口;

-v(小写字母):挂载目录,形式:[HOST-DIR:]CONTAINER-DIR;

 

4. 检查启动信息

[root@server-10 ~]# docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED              STATUS                                 PORTS                                                               NAMES
3c8cdd184582        gitlab/gitlab-ce:latest   "/assets/wrapper"        About a minute ago   Up About a minute (health: starting)   0.0.0.0:2222->22/tcp, 0.0.0.0:8888->80/tcp, 0.0.0.0:4443->443/tcp   gitlab

启动需要一些时间,过一段时间后再次查看

[root@server-10 logs]# docker ps 
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                   PORTS                                                               NAMES
3c8cdd184582        gitlab/gitlab-ce:latest   "/assets/wrapper"        3 minutes ago       Up 3 minutes (healthy)   0.0.0.0:2222->22/tcp, 0.0.0.0:8888->80/tcp, 0.0.0.0:4443->443/tcp   gitlab

再查看本机端口状态

复制代码
[root@server-10 ~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN         
tcp6       0      0 :::2222                 :::*                    LISTEN         
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::8888                 :::*                    LISTEN        
tcp6       0      0 :::4443                 :::*                    LISTEN     
复制代码

查看本机为gitlab容器新建的工作目录内容

[root@server-10 ~]# tree -L 2 /data/docker/gitlab/
/data/docker/gitlab/
├── config
│   ├── gitlab.rb        // 主要配置文件
│   ├── gitlab-secrets.json
│   ├── ssh_host_ecdsa_key
│   ├── ssh_host_ecdsa_key.pub
│   ├── ssh_host_ed25519_key
│   ├── ssh_host_ed25519_key.pub
│   ├── ssh_host_rsa_key
│   ├── ssh_host_rsa_key.pub
│   └── trusted-certs
├── data
│   ├── backups
│   ├── git-data
│   ├── gitlab-ci
│   ├── gitlab-rails
│   ├── gitlab-shell
│   ├── logrotate
│   ├── postgresql
│   ├── redis
│   └── trusted-certs-directory-hash
└── logs
    ├── gitlab-rails
    ├── gitlab-shell
    ├── logrotate
    ├── postgresql
    ├── reconfigure
    ├── redis
    ├── sidekiq
    ├── sshd
    └── unicorn
复制代码
[root@server-10 ~]# tree -L 2 /data/docker/gitlab/
/data/docker/gitlab/
├── config
│   ├── gitlab.rb        // 主要配置文件
│   ├── gitlab-secrets.json
│   ├── ssh_host_ecdsa_key
│   ├── ssh_host_ecdsa_key.pub
│   ├── ssh_host_ed25519_key
│   ├── ssh_host_ed25519_key.pub
│   ├── ssh_host_rsa_key
│   ├── ssh_host_rsa_key.pub
│   └── trusted-certs
├── data
│   ├── backups
│   ├── git-data
│   ├── gitlab-ci
│   ├── gitlab-rails
│   ├── gitlab-shell
│   ├── logrotate
│   ├── postgresql
│   ├── redis
│   └── trusted-certs-directory-hash
└── logs
    ├── gitlab-rails
    ├── gitlab-shell
    ├── logrotate
    ├── postgresql
    ├── reconfigure
    ├── redis
    ├── sidekiq
    ├── sshd
    └── unicorn
复制代码

以上可以看出里面集成的东西还是挺多的。

 

5. 登录gitlab

在浏览器输入安装gitlab容器的主机地址,形式 IP:PORT

首次登录设置新密码,然后进入下一页登录界面,用户名:root,密码:<上一页设定的密码 >

后面就可以使用了。

 

6. 排错

如果初始登录浏览器出现502那么请检查是否端口冲突,修改文件gitlab.rb相关端口项 unicorn['port'] =PORT

也可以根据logs目录中的信息跟踪查询,如果出现GitLab external URL must include a schema and FQDN,请尝试修改gitlab.rb文件中的配置项格式 external_url = 'gitlab.xxx.com' 或者 external_url  'http://138.138.82.10'。

 

7. 更新GitLab

如果采用上述安装方法,更新变的很简单:停止gitlab容器,删除停止的gitlab容器,获取新镜像,再次使用原来的启动命令启动出一个新gitlab容器即可。不用担心数据丢失,只要挂载目录与之前一致,就会自动读取主机原来的目录下的数据。

 

附. 常用gitlab命令

gitlab-ctl reconfigure  // 重新应用gitlab的配置
gitlab-ctl restart    // 重启gitlab服务
gitlab-ctl status      // 查看gitlab运行状态
gitlab-ctl stop      // 停止gitlab服务
gitlab-ctl tail     // 查看gitlab运行日志

 

结束.

 

转自:https://www.cnblogs.com/ding2016/p/10422605.html

转载于:https://www.cnblogs.com/zxcnn/p/11502369.html

网站文章

  • select count(t.id)时遇到java.lang.ClassCastException: java.lang.Long

    重用以前的分页程序setTotalCount(sql)失败,遇到java.lang.ClassCastException: java.lang.Long异常 解决办法:将((Integer) result.get(0)).intValue();改为:((Long) result.get(0)).intValue(); 显然是sql统计语句返回类型改变了,类似问题可以

    2024-02-01 02:54:35
  • Vant-UI库和Element-UI库修改样式无效

    Vant-UI库和Element-UI库修改样式无效 最近用vue写页面时,发现使用vant的有些UI组件,而又不能满足自己的样式,修改CSS样式还是无效。css一般都会使用sass或者less,加了...

    2024-02-01 02:54:29
  • 通过实现AutoCloseable接口实现资源连接的关闭

    通过实现AutoCloseable接口实现资源连接的关闭

    自动关闭资源连接的好处在Java开发过程中,按照正常的设计开发的结构来讲,大部分程序应该是面向接口的开发,应该在接口里面提供所有的核心业务的功能,但是像及时释放连接资源的操作属于非核心业务功能。每次手...

    2024-02-01 02:54:22
  • idea marketplace plugins are not loaded 解决方案

    File—>Setting—>Appearance&Behavior—>System Settings—>HTTP Proxy进行配置,https://plugins.jetbrains.com/

    2024-02-01 02:54:15
  • SecurityContextHolder.getContext().getAuthentication()为null解决方案

    SecurityContextHolder.getContext().getAuthentication();为null解决方案 SpringSecurity。之前想用SecurityContextH...

    2024-02-01 02:53:45
  • 大厂面经系列 | 前端 | 美团,字节,京东,顺丰,携程 等题目分享

    一、HTML+CSS 实现左侧固定宽度,右侧自适应的布局,有几种方式?如果用display:inline-block可以实现么?有什么问题? 实现一段文本垂直上下居中有几种方式? 假如设计稿的文字有6...

    2024-02-01 02:53:38
  • Nexus私服搭建及Maven集成(Windows版本 - 巨详细)

    Nexus私服搭建及Maven集成(Windows版本 - 巨详细)

    一、Nexus下载 下载地址:https://www.sonatype.com/products/repository-oss-download PS:此处链接访问后,会让你填一些信息才能让你访问到具...

    2024-02-01 02:53:30
  • 叠纸测试开发一面 凉经(投测试 因为 一志愿 软开被挂了)

    I 小白的代数题题目大意小曾的手上最开始有 个糖果,现在有 次操作,每次操作能将小曾手上的数变为原来的 倍加上 个,求每次操作后小曾手上的糖果数之和。等到今天才告诉我offer审批没有通过,我...

    2024-02-01 02:52:59
  • 使用Mybatis框架

    使用Mybatis框架

    配置文件,Spring Boot项目在启动时会自动读取此文件中的配置信息,如果配置信息中的属性名是特定的,Spring Boot还会自动应用这些属性值。在Spring Boot项目中,在。

    2024-02-01 02:52:51
  • 在eclipse中高亮显示相同字符串

    在eclipse中选中一个字符串,则在本源文件中高亮显示相同的字符串,实现这样的功能,只需选中菜单栏的“Toggle Mark Occurrences” 按钮(一个“钢笔头”图标,或使用快捷键Alt+...

    2024-02-01 02:52:18