• 通过Docker搭建自己的gitlab


    获取镜像

    docker pull beginor/gitlab-ce:11.3.0-ce.0

    运行

    通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。

    sudo mkdir -p /mnt/sda1/gitlab/etc
    sudo mkdir -p /mnt/sda1/gitlab/log
    sudo mkdir -p /mnt/sda1/gitlab/data

    准备好这三个目录之后, 就可以开始运行 Docker 镜像了。 我的建议是使用unless-stopped 作为重启策略, 因为这样可以手工停止容器, 方便维护。

    完整的运行命令如下:

    docker run 
        --detach 
        --publish 8443:443 
        --publish 8080:80 
        --name gitlab 
        --restart unless-stopped 
        --volume /mnt/sda1/gitlab/etc:/etc/gitlab 
        --volume /mnt/sda1/gitlab/log:/var/log/gitlab 
        --volume /mnt/sda1/gitlab/data:/var/opt/gitlab 
        beginor/gitlab-ce:11.3.0-ce.0

    升级

    小版本升级(例如从 8.8.2 升级到 8.8.3), 参照官方的说明, 将原来的容器停止, 然后删除:

    docker stop gitlab
    docker rm gitlab

    然后重新拉一个新版本的镜像下来,

    docker pull beginor/gitlab-ce:11.3.0-ce.0

    还使用原来的运行命令运行,

    docker run 
        --detach 
        --publish 8443:443 
        --publish 8080:80 
        --name gitlab 
        --restart unless-stopped 
        --volume /mnt/sda1/gitlab/etc:/etc/gitlab 
        --volume /mnt/sda1/gitlab/log:/var/log/gitlab 
        --volume /mnt/sda1/gitlab/data:/var/opt/gitlab 
        beginor/gitlab-ce:11.3.0-ce.0

    GitLab 在初次运行的时候会自动升级, 为了预防万一, 还是建议先备份一下 /mnt/sda1/gitlab/ 这个目录。

    大版本升级(例如从 8.7.x 升级到 8.8.x)用上面的操作有可能会出现错误, 如果出现错误可以尝试登录到容器内部, 可以用 docker exec , 也可以用 ssh , 依次执行下面的命令:

    gitlab-ctl reconfigure
    gitlab-ctl restart
    默认用户:root,密码自己在页面上设置

    问题1:如果docker安装并成功运行gitlab容器之后,访问gitlab发现一直出现502错误。

      问题描述:对于上述问题,因为我的服务器配置比较low(1G,50G),而GitLab对系统硬件有要求,主要就是内存大于2G,否则或碰到奇怪的错误。所以我经过几次尝试安装一直显示502错误。没办法,穷啊,那只有找解决方案。终于找到一篇相关的文章小型云服务器搭建GitLab遇到的坑  ,核心思想是增加服务器的swap空间。这个问题竟然成功解决。

    $ sudo free -h
    $ free -h
                  total        used        free      shared  buff/cache   available
    Mem:           1.8G        1.5G         68M        5.8M        242M        125M
    Swap:          0           0            0

    解决:如果Swap 的total小于2G,可以添加Swap分区大小

    sudo -i # 切换root权限
    dd if=/dev/zero of=/var/swap bs=1024 count=2048000 #分区大小设为2g<br>ls -lh /var/swap # 验证<br>mkswap /var/swap #启动分区<br>swapon /var/swap #激活

    最后大功告成:

    问题2:【docker】【Gitlab】gitlab中clone项目时,IP地址是一串数字(内网Gitlab的IP地址不正确)的问题解决

    首次在内网搭建Gitlab环境,在成功后在Gitlab上新建了一个项目。

    然而在IDEA上clone项目时发现,项目地址如下:

    git@9b2ba0249252:dev/python_gui_test.git

    或者这样

    http://0096ce63c43f/dev/python_gui_test.git

    然而在setting中看到的IP地址却是虚拟机的IP地址:

     但是此处是无法改变的IP地址,也就是我在IDEA进行clone项目时,还是这一串字符串,这是没法clone使用的

    解决:

    1.如果你挂载了配置文件在宿主机上,启动命令如下

    docker run 
        --detach 
        --publish 8443:443 
        --publish 8080:80 
        --name gitlab 
        --restart unless-stopped 
        --volume /mnt/sda1/gitlab/etc:/etc/gitlab 
        --volume /mnt/sda1/gitlab/log:/var/log/gitlab 
        --volume /mnt/sda1/gitlab/data:/var/opt/gitlab 
        beginor/gitlab-ce:11.3.0-ce.0

    2.那么你可以直接查找文件

    find /mnt/sda1/gitlab/ -name gitlab.rb

     修改文件

    vi /mnt/sda1/gitlab/etc/gitlab.rb

    文件中增加 

    external_url 'http://192.168.182.135'

    值为‘http://gitlab所在服务器的IP’  需要注意的是,不加端口!!

    3.重启gitlab,查看服务中 项目的拉取地址是否改变

    docker restart gitlab

    修改成功:

     

    注意:如果不是80端口,则不能直接复制地址使用,必须加上端口

    例如:

    # ssh
    git@192.168.182.135:8080:dev/python_gui_test.git # http http://192.168.182.135:8080/dev/python_gui_test.git # http+账号密码 http://liugp:1331301116@192.168.182.135:8080/dev/python_gui_test.git
  • 相关阅读:
    浅谈jsp、freemarker、velocity区别
    python获取通道状态
    Uncaught TypeError: $(...).customFileInput is not a function
    CentOS环境下tomcat启动超级慢的解决方案
    错误处理
    Caused by: java.lang.ClassNotFoundException: com.alibaba.druid.support.http.StatViewServlet
    Uncaught TypeError: Cannot read property 'msie' of undefined
    使用__slots__:
    Oracle 分区索引
    获取对象信息
  • 原文地址:https://www.cnblogs.com/liugp/p/12169050.html
Copyright © 2020-2023  润新知