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


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

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

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

    1.拉取镜像

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

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

     

    2.设置卷位置

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

    2.1 在宿主机创建卷

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

     

    2.2 声明环境变量

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

     

    3.运行gitlab容器

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

    1. [root@base ~]# sudo docker run --detach \
    2. > --publish 443:443 --publish 80:80 --publish 10022:22 \
    3. > --name gitlab \
    4. > --restart always \
    5. > --volume $GITLAB_HOME/config:/etc/gitlab \
    6. > --volume $GITLAB_HOME/logs:/var/log/gitlab \
    7. > --volume $GITLAB_HOME/data:/var/opt/gitlab \
    8. > --shm-size 256m \
    9. > registry.gitlab.cn/omnibus/gitlab-jh:latest
    10. b848d1c24944b551525007c4f2749e08ae327b6d8ad9934776c0c038348a517f
    11. [root@base ~]# docker ps -a
    12. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    13. 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
    14. 7dda8b117154 registry "/entrypoint.sh /e..." 6 days ago Up 3 hours 0.0.0.0:5000->5000/tcp registry
    15. 复制代码

    4.配置gitlab

    进入容器再操作

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

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

    1. root@0fd6622feef2:/# vi /etc/gitlab/gitlab.rb
    2. # 修改external_url 'GENERATED_EXTERNAL_URL'
    3. external_url 'http://192.168.200.201'
    4. # 设置ssh链接,使用宿主机的外部端口
    5. gitlab_rails['gitlab_ssh_host'] = '192.168.200.201'
    6. gitlab_rails['gitlab_shell_ssh_port'] = 10022
    7. 按下ESC
    8. :wq #保存退出
    9. 复制代码

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

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

     

    4.3 重启gitlab(容器内操作)

    1. # 如果timeout(超时),那么多重启几次
    2. root@0fd6622feef2:/# gitlab-ctl restart
    3. ok: run: alertmanager: (pid 2390) 1s
    4. ok: run: gitaly: (pid 2398) 0s
    5. ok: run: gitlab-exporter: (pid 2412) 0s
    6. ok: run: gitlab-kas: (pid 2414) 0s
    7. ok: run: gitlab-workhorse: (pid 2422) 0s
    8. ok: run: logrotate: (pid 2433) 0s
    9. ok: run: nginx: (pid 2439) 1s
    10. ok: run: postgres-exporter: (pid 2445) 0s
    11. ok: run: postgresql: (pid 2453) 1s
    12. ok: run: prometheus: (pid 2462) 0s
    13. ok: run: puma: (pid 2472) 1s
    14. ok: run: redis: (pid 2477) 0s
    15. ok: run: redis-exporter: (pid 2483) 0s
    16. ok: run: sidekiq: (pid 2571) 0s
    17. ok: run: sshd: (pid 2577) 1s

    绵薄之力

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

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

  • 相关阅读:
    centerOS 安装mangodb
    linux安装docker-compose
    python二次开发CATIA:测量曲线长度
    智慧电力运维系统助力实现配电室无人值守
    【吴恩达】prompt engineering(原则 迭代 文本概括 推断、订餐机器人)
    通过IP地址如何防范钓鱼网站诈骗?
    <数据库视图>--数据库的“眼镜”(世界杯例题篇),查阅必备
    ヾ(⌐ ■_■)— HTML-CSS常用属性
    DM@命题公式范式@析取范式和合取范式@主范式基础
    lc[数组]---706.二分查找
  • 原文地址:https://blog.csdn.net/IT_LanTian/article/details/127750300