Docker从入门到进阶之进阶操作(6) —— 【在docker上运行gitlab】

2023-05-16

上一章节讲了使用docker来做nginx的负载均衡,这一章节讲【在docker上运行gitlab】

在本章节中,将为您演示如何在docker上运行gitlab

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务,想必各位开发者在日常代码开发需要将代码同步至Github或者Gitee仓库中,也有可能由于某些网络和审计原因,我们不能将代码托管到公共仓库,那么我们可以构建自己的私有代码托管仓库---gitlab

1.拉取镜像

本次使用的是极狐GitLab Docker 镜像,是极狐GitLab 的整体镜像,在单个容器中运行所有必要的服务

[root@base ~]# docker pull registry.gitlab.cn/omnibus/gitlab-jh:latest
Trying to pull repository registry.gitlab.cn/omnibus/gitlab-jh ...
latest: Pulling from registry.gitlab.cn/omnibus/gitlab-jh
3b65ec22a9e9: Pull complete
9ce3f6b2507d: Pull complete
ac19a78281d5: Pull complete
bb3c3f1c8644: Pull complete
68ca2a4567a0: Pull complete
bc72d87c5eba: Pull complete
39c50a8c026b: Pull complete
8a5f2ec13e24: Pull complete
Digest: sha256:f21efbd86aadfe2e353799d56811a09a507c7fcf40cd2999fb16237b72469128
Status: Downloaded newer image for registry.gitlab.cn/omnibus/gitlab-jh:latest
[root@base ~]# docker images
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
mysql                                  latest              d39235e17905        5 days ago          571 MB
<none>                                 <none>              75279e2d58b5        5 days ago          101 MB
nginx_alb                              latest              4e28f6e4fc6a        6 days ago          390 MB
ssh-server                             latest              4e28f6e4fc6a        6 days ago          390 MB
registry.gitlab.cn/omnibus/gitlab-jh   latest              e1136770c69f        7 days ago          2.91 GB
docker.io/registry                     latest              3a0f7b0a13ef        3 weeks ago         24.1 MB
docker.io/ubuntu                       <none>              df5de72bdb3b        4 weeks ago         77.8 MB
docker.io/nginx                        latest              605c77e624dd        8 months ago        141 MB
docker.io/ubuntu                       latest              ba6acccedd29        10 months ago       72.8 MB
docker.io/centos                       7                   eeb6ee3f44bd        11 months ago       204 MB

复制代码

 

2.设置卷位置

其实就是设置待会gitlab容器需要挂载卷的位置,当然这些需要提前在宿主机创建

2.1 在宿主机创建卷

[root@base ~]# mkdir /opt/gitlab
[root@base ~]# ls -l /opt/
total 0
drwxr-xr-x. 2 root root 6 Aug 31 18:31 gitlab
[root@base ~]# chmod a+w /opt/gitlab/
[root@base ~]# ls -l /opt/
total 0
drwxrwxrwx. 2 root root 6 Aug 31 18:31 gitlab
复制代码

 

2.2 声明环境变量

[root@base ~]# export GITLAB_HOME=/opt/gitlab
# 查看
[root@base ~]# export |grep GITLAB_HOME
declare -x GITLAB_HOME="/opt/gitlab"
复制代码

 

3.运行gitlab容器

原本官方使用的是 22:22端口映射,但是因为宿主机已经在使用22的端口,那么就修改一下映射为10022

[root@base ~]# sudo docker run --detach \
>   --publish 443:443 --publish 80:80 --publish 10022:22 \
>   --name gitlab \
>   --restart always \
>   --volume $GITLAB_HOME/config:/etc/gitlab \
>   --volume $GITLAB_HOME/logs:/var/log/gitlab \
>   --volume $GITLAB_HOME/data:/var/opt/gitlab \
>   --shm-size 256m \
>   registry.gitlab.cn/omnibus/gitlab-jh:latest
b848d1c24944b551525007c4f2749e08ae327b6d8ad9934776c0c038348a517f
[root@base ~]# docker ps -a
CONTAINER ID        IMAGE                                         COMMAND                  CREATED             STATUS                            PORTS                                                             NAMES
b848d1c24944        registry.gitlab.cn/omnibus/gitlab-jh:latest   "/assets/wrapper"        9 seconds ago       Up 5 seconds (health: starting)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:10022->22/tcp   gitlab
7dda8b117154        registry                                      "/entrypoint.sh /e..."   6 days ago          Up 3 hours                        0.0.0.0:5000->5000/tcp                                            registry
复制代码

4.配置gitlab

进入容器再操作

[root@base ~]# docker exec -it gitlab bash
root@0fd6622feef2:/#
复制代码

4.1 修改gitlab.rb文件(容器 /etc/gitlab/ 目录)

root@0fd6622feef2:/# vi /etc/gitlab/gitlab.rb
# 修改external_url 'GENERATED_EXTERNAL_URL'
external_url 'http://192.168.200.201'

# 设置ssh链接,使用宿主机的外部端口
gitlab_rails['gitlab_ssh_host'] = '192.168.200.201'
gitlab_rails['gitlab_shell_ssh_port'] = 10022

按下ESC
:wq #保存退出
复制代码

4.2 修改gitlab.yaml文件(容器 /opt/gitlab/embedded/service/gitlab-rails/config/ 目录)

root@0fd6622feef2:/# vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
# 13行 host修改为 宿主机IP地址
host: 192.168.200.201
ssh_host: 192.168.200.201
按下ESC
:wq #保存退出
复制代码

 

4.3 重启gitlab(容器内操作)

# 如果timeout(超时),那么多重启几次
root@0fd6622feef2:/# gitlab-ctl restart
ok: run: alertmanager: (pid 2390) 1s
ok: run: gitaly: (pid 2398) 0s
ok: run: gitlab-exporter: (pid 2412) 0s
ok: run: gitlab-kas: (pid 2414) 0s
ok: run: gitlab-workhorse: (pid 2422) 0s
ok: run: logrotate: (pid 2433) 0s
ok: run: nginx: (pid 2439) 1s
ok: run: postgres-exporter: (pid 2445) 0s
ok: run: postgresql: (pid 2453) 1s
ok: run: prometheus: (pid 2462) 0s
ok: run: puma: (pid 2472) 1s
ok: run: redis: (pid 2477) 0s
ok: run: redis-exporter: (pid 2483) 0s
ok: run: sidekiq: (pid 2571) 0s
ok: run: sshd: (pid 2577) 1s

绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

​这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

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

Docker从入门到进阶之进阶操作(6) —— 【在docker上运行gitlab】 的相关文章

随机推荐