docker方式部署gitlab

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

猜你喜欢

转载自blog.csdn.net/corosync/article/details/128671331