docker方式部署gitlab

2023-05-16

docker方式部署gitlab

 说明

  • 操作系统:CentOS Linux release 7.9.2009 (Core)
  • docker版本:20.10.17
  • 主机ip地址:172.16.100.107
  • gitlab.cn官网安装教程:https://docs.gitlab.cn/jh/install/docker.html
  • 文中包含部署过程中遇到的问题及解决办法
  • 内网时间服务器:172.16.100.2

 安装

创建存放持久化数据的目录

mkdir /srv/gitlab
cd /srv/gitlab/

创建必需的子目录

mkdir data logs config

修改官方命令

docker run --detach \
   --hostname 172.16.100.107 \
   --publish 443:443 --publish 80:80 --publish 22:22 \
   --name gitlab \
   --restart always \
   --volume /srv/gitlab/config:/etc/gitlab \
   --volume /srv/gitlab/logs:/var/log/gitlab \
   --volume /srv/gitlab/data:/var/opt/gitlab \
   --shm-size 256m \
   registry.gitlab.cn/omnibus/gitlab-jh:latest

上面的命令中重点是这些卷

 --hostname 172.16.100.107 #修改成你自己的
 --volume /srv/gitlab/config:/etc/gitlab 
 --volume /srv/gitlab/logs:/var/log/gitlab 
 --volume /srv/gitlab/data:/var/opt/gitlab 

此时不要运行命令,这里我们要看一下命令,官方命令可能存在问题

--publish 443:443 --publish 80:80 --publish 22:22 

这里的的含义是要占用本机的443  80  22 端口.众所周知443  80端口般没问题,但是22端口一般存在问题.22端口一般是ssh所用端口.

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      952/sshd

所以我们需要修改一下这个端口,否则容器是无法启动的,会报这个错误,我这里把22改为2222端口,你可以改为其它没有被进程占用的端口:

docker: Error response from daemon: driver failed programming external connectivity on endpoint gitlab (dc36d8ee8dea7b846ded2cbde2b2788e9dbed834b9ce6f24716dc584425502ea): Error starting userland proxy: listen tcp4 0.0.0.0:22: bind: address already in use.

最终命令如下:

docker run --detach \
   --hostname 172.16.100.107 \
   --publish 443:443 --publish 80:80 --publish 2222:22 \
   --name gitlab \
   --restart always \
   --volume /srv/gitlab/config:/etc/gitlab \
   --volume /srv/gitlab/logs:/var/log/gitlab \
   --volume /srv/gitlab/data:/var/opt/gitlab \
   --shm-size 256m \
   registry.gitlab.cn/omnibus/gitlab-jh:latest

执行后我们等待镜像拉取完毕,查看容器是否创建成功.镜像比较大,需要拉取一会.

[root@dhl107 gitlab]# docker run --detach   --hostname 172.16.100.107   --publish 443:443 --publish 80:80 --publish 2222:22   --name gitlab   --restart always   --volume /srv/gitlab/config:/etc/gitlab   --volume /srv/gitlab/logs:/var/log/gitlab   --volume /srv/gitlab/data:/var/opt/gitlab   --shm-size 256m   registry.gitlab.cn/omnibus/gitlab-jh:latest
Unable to find image 'registry.gitlab.cn/omnibus/gitlab-jh:latest' locally
latest: Pulling from omnibus/gitlab-jh
846c0b181fff: Pull complete
b177d2c6b473: Pull complete
1237feeb5080: Pull complete
d699df069df3: Pull complete
b0d65d890c59: Pull complete
7b73a6fe76ef: Pull complete
cb988e6d5c63: Pull complete
f57b8db0a491: Extracting [=======================================>           ]  1.036GB/1.326GB

我们查看容器是否创建成功:

[root@dhl107 gitlab]# docker ps
CONTAINER ID   IMAGE                                         COMMAND             CREATED         STATUS                            PORTS                                                                                                             NAMES
3040e6f04d0e   registry.gitlab.cn/omnibus/gitlab-jh:latest   "/assets/wrapper"   5 seconds ago   Up 4 seconds (health: starting)   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:2222->22/tcp, :::2222->22/tcp   gitlab

如果创建成功,使用下面的命令可以跟踪容器内gitlab应用启动日志

[root@dhl107 gitlab]# docker logs -f gitlab
Thank you for using GitLab Docker Image!
Current version: gitlab-jh=15.7.2-jh.0

Configure GitLab for your system by editing /etc/gitlab/gitlab.rb file #这里不必理会,因为我们已经映射到了主机目录,停止gitlab容器,直接vim修改/srv/gitlab/config/gitlab.rb文件,然后启动容器即可.
And restart this container to reload settings.
To do it use docker exec:

  docker exec -it gitlab editor /etc/gitlab/gitlab.rb #这里不必理会,因为我们已经映射到了主机目录,停止gitlab容器,直接vim修改/srv/gitlab/config/gitlab.rb文件,然后启动容器即可.
  docker restart gitlab

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

If this container fails to start due to permission problems try to fix it by executing:

  docker exec -it gitlab update-permissions
  docker restart gitlab

Cleaning stale PIDs & sockets
cat: /var/opt/gitlab/gitlab-rails/VERSION: No such file or directory
Installing gitlab.rb config...
Generating ssh_host_rsa_key...

初始化过程可能需要很长时间。所以需要耐心等待.每过一会可以访问http://172.16.100.107/ 试试.

如果出现了登录页面,我们需要查找一个密码

[root@dhl107 ~]# sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
Password: ZRIKocuTDT/jD6B52QUqw3C9QNJmZCfW3ZhpGU7zocU=

用户名:root

密码: ZRIKocuTDT/jD6B52QUqw3C9QNJmZCfW3ZhpGU7zocU=

使用该密码即可登录.

如果想要在命令行修改初始密码(或者初始密码弄丢了),我们可以使用下面的命令:

gitlab-rake "gitlab:password:reset[root]" 
Enter password:
Confirm password:

 上面命令的意思是修改root的密码,然后根据shell提示输入2次密码,完成密码修改

系统登录报422错误,这个错误我这边是因为时间与标准时间差了1天多.同步一下时间就好了.

 

  同步时间命令:

[root@dhl107 ~]# yum install ntpdate -y
[root@dhl107 ~]# ntpdate 172.16.100.2 #172.16.100.2是我的内网时间服务器
13 Jan 18:40:55 ntpdate[37087]: step time server 172.16.100.2 offset 106114.358633 sec
[root@dhl107 ~]# date
2023年 01月 13日 星期五 18:40:59 CST

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker方式部署gitlab 的相关文章

随机推荐

  • 前端路由跳转基本原理

    目前前端三杰 Angular React Vue 都推介单页面应用 SPA 开发模式 xff0c 在路由切换时替换 DOM Tree 中最小修改的部分 DOM xff0c 来减少原先因为多页应用的页面跳转带来的巨量性能损耗 它们都有自己的典
  • proxyTable的配置

    在dev环境下面 xff1a proxyTable 39 api 39 target 39 http api douban com v2 39 主域名 xff0c 以前我都写192 168 2 57 80 xff0c 这里跨域了 chang
  • secureCRT 8 license

    secureCRT 8 license Name Company Serial Number License Key Issue Date Admin FENG 03 47 186992 ACF3C7 NZD1JC JHMRJ6 KWC53
  • 如何使用CSS3来获取屏幕宽度并且用来计算DIV高度

    稍微出示一下我之前的代码 var global width 61 window width var info height 61 global width 750 230 之前需要用js实现的计算相对高度 xff0c 现在要交给CSS来实现
  • haproxy 配置详解

    说明 xff1a 1 haproxy的配置段有 34 global 34 xff0c 34 defaults 34 34 listen 34 34 frontend 34 和 34 backend 34 等 global 配置中的参数为进程
  • 什么是灰度图

    为什么80 的码农都做不了架构师 xff1f gt gt gt 图像灰度值的概念是什么 xff1f 灰度也可以认为是亮度 xff0c 简单说就是色彩的深浅程度 实际上在我们的日常生活中 xff0c 通过三原色色彩深浅的组合 xff0c 可以
  • matlab figure 窗口最大化

    http blog 163 com yinhexiwen 64 126 blog static 6404826620122942057214 figure 窗口最大化 xff0c 坐标轴也随着窗口变大而相应变大 scrsz 61 get 0
  • 让Tomcat7识别War包的Class-Path(MANIFEST.MF)属性动态加载类路径

    原文 https my oschina net noahxiao blog 173499 目录 一 背景 二 分析 三 开发 四 总结 一 背景 几个Web项目需要打包到一个发布包中 xff0c 问题是War包都各自包含了自己的WEB IN
  • 【黑马程序员】————结构体

    Java培训 Android培训 iOS培训 Net培训 期待与您交流 xff01 一 什么是结构体 数组 xff1a 只能由多个相同类型的数据构成 结构体 xff1a 可以由多个不同类型的数据构成 二 结构体的定义 1 定义形式 结构体内
  • 《oracle大型数据库系统在AIX/unix上的实战详解》讨论28:两台机器间Oracle迁移的方法和过程...

    oracle大型数据库系统在AIX unix上的实战详解 讨论28 xff1a 两台机器间Oracle迁移的方法和过程 文平 大家新年好 xff01 新年期间没有更新日志 xff0c 也没有查收大家发来的邮件 今天回到工作岗位 xff0c
  • 《Programming in Lua 3》读书笔记(十六)

    日期 xff1a 2014 7 23 Part The Standard Libraries 20 The Table Library table库包含一些辅助函数用以类似与数组一样操作table 提供了从list内插入和删除元素的操作 x
  • 重磅系列文章|UI2Code智能生成Flutter代码--整体设计篇 ...

    闲鱼技术 上叶 背景 随着移动互联网时代的到来 xff0c 人类的科学技术突飞猛进 然而软件工程师们依旧需要花费大量精力在重复的还原UI视觉稿的工作 UI视觉研发拥有明显的特征 xff1a 组件 xff0c 位置和布局 xff0c 符合机器
  • linux debian系统卸载jdk,Debian/Ubuntu系统 JDK卸载、安装、环境配置

    环境 xff1a Linux内核版本4 17 Oracle jdk 11 0 2 JDK 8同样也是设置 Debian9系统 注意 xff1a 1 Open JDK和Oracle JDK的安装过程只是下载的连链接不一样 2 有的Linux系
  • MySQL 8.0 Windows zip 安装过程

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 准备 xff1a MySQL8 0 Windows zip包下载地址 xff1a https cdn mysql com Downloads MySQL 8 0 mysql
  • nohup后台执行脚本并输入日志到指定目录 &

    后台执行命令 xff0c 并输出目录到指定目录 root 64 localhost smgpSend Log nohup tar zcvf sendThread bak tar sendThread bak gt gt 1 txt amp
  • 在 Laravel 5 中集成七牛云存储实现云存储功能

    本扩展包基于https github com qiniu php sdk 开发 xff0c 是七牛云储存 Laravel 5 Storage版 xff0c 通过本扩展包可以在Laravel 5中集成七牛云存储功能 1 安装配置 使用之前 x
  • BSS段、数据段、代码段、堆与栈

    BSS段 xff1a BSS段 xff08 bss segment xff09 通常是指用来存放程序中未初始化的全局变量的一块内存区域 BSS是英文Block Started by Symbol的简称 BSS段属于静态内存分配 数据段 xf
  • Java字符串排序中文+数字

    编写日期 xff1a 2013年9月15日 另一中解法 xff1a 点击查看 解决思路 xff1a 在Java中 xff0c 排序需要复写的是 equals 方法 和 Comparable lt T gt 接口 的public int co
  • UIView 中常见的方法总结

    addSubview 添加一个子视图到接收者并让它在最上面显示出来 void addSubview UIView view 讨论 这方法同样设置了接收者为下一个视图响应对象 接收者保留视图 如果你使用removeFromSuperview方
  • docker方式部署gitlab

    docker方式部署gitlab 说明 操作系统 CentOS Linux release 7 9 2009 Core docker版本 20 10 17主机ip地址 172 16 100 107gitlab cn官网安装教程 https