zoukankan      html  css  js  c++  java
  • Docker部署Gitlab11.10.4

    1、下载镜像

    官方镜像地址:https://hub.docker.com/r/gitlab/gitlab-ce ,根据自己需要下载指定版本

    [root@vanje-dev01 ~]# docker pull gitlab/gitlab-ce:11.10.4-ce.0

    镜像大小接近2个G,下载速度取决于宿主机网络,耐心等待即可。

    2、启动

    [root@vanje-dev01 ~]# docker run -d 
         -p 18443:443
         -p 18080:80
         -p 12222:22
         --name gitlab
         --restart always
         -v /opt/gitlab/config:/etc/gitlab
         -v /opt/gitlab/logs:/var/log/gitlab
         -v /opt/gitlab/data:/var/opt/gitlab
         gitlab/gitlab-ce:11.10.4-ce.0

    -p端口映射,前面为宿主机端口,后面为容器端口;-v 是目录挂载,把容器中gitlab数据进行持久化设置;宿主机目录无需创建,容器运行时,如果对应目录不存在,会默认创建。

    3、修改Gitlab访问地址

    docker安装gitlab,创建项目时,默认项目URL访问地址显示的是容器主机地址(容器id),所以我们需要修改为一个固定可以外部访问的地址及宿主机地址,这样才可以进行pull/push代码

    [root@vanje-dev01 ~]# vim /opt/gitlab/config/gitlab.rb 
    ### 取消external_url注释,地址为宿主机地址
    external_url 'http://172.16.11.248'

    ## 重载服务
    [root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl reconfigure
    [root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl restart

    注意:

      1、上面external_url 地址不要加映射的主机端口号,否则会无法访问gitlab。

      2、这样配置在后面添加用户发邮件通知设置密码时,会出现gitlab服务url后面的端口丢失不能正常跳转到gitlab页面,解决这个问题有两种方案:  

    方案一:
    [root@vanje-dev01 ~]# vim /opt/gitlab/data/gitlab-rails/etc/gitlab.yml
    ## 把端口号修改为映射的主机端口,默认端口为80 host:
    172.16.11.248 port: 18080 https: false

    ## 不要执行reconfigure命令重新加载,否则端口号还是会变为80,直接重启即可
    [root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl restart

      还有一种方式就是在容器启动时传递环境变量设置gitlab访问地址及端口,这样也不需要再进行external_url地址修改(推荐使用这种方式) 

    方案二:
    ### 删除之前容器重新创建
    [root@vanje-dev01 ~]# docker rm -f gitlab
    [root@vanje-dev01 ~]# rm -rf /opt/gitlab/
    [root@vanje-dev01 ~]# docker run -d --env GITLAB_OMNIBUS_CONFIG="external_url 'http://172.16.11.248:18080/';" -p 18443:443 -p 18080:18080 -p 12222:22 --name gitlab
    --restart always
    -v /opt/gitlab/config:/etc/gitlab -v /opt/gitlab/logs:/var/log/gitlab -v /opt/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:11.10.4-ce.0

    注意:这种方式端口映射时直接就映射为自己想要的端口,因为我们启动时,已经把gitlab在容器内的端口设置为18080了

    4、访问

    访问地址:http://172.16.11.248:18080

    第一次访问会要求我们设置root密码,设置好后登陆即可。

    5、设置邮箱

    gitlab在实际工作使用中,admin新开账号时,会自动给新账号绑定的邮箱发送通知邮件,点击邮件中的链接进行激活,首次登陆gitlab会进行密码设置

    [root@vanje-dev01 ~]# vim /opt/gitlab/config/gitlab.rb 
    ## 找到以下配置项,取消注释   gitlab_rails[
    'smtp_enable'] = true   gitlab_rails['smtp_address'] = "smtp.qiye.aliyun.com"   gitlab_rails['smtp_port'] = 465   gitlab_rails['smtp_user_name'] = "****@vanje.com.cn"   gitlab_rails['smtp_password'] = "****"   gitlab_rails['smtp_domain'] = "vanje.com.cn"   gitlab_rails['smtp_authentication'] = "login"   gitlab_rails['smtp_enable_starttls_auto'] = true   gitlab_rails['smtp_tls'] = true   gitlab_rails['gitlab_email_from'] = "****@vanje.com.cn" ## 新增
    [root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl reconfigure

    注意:这里用的是阿里云的邮箱,不同的邮箱需要去看邮箱提供商提供的帮助。

      如果想测试下邮箱设置是否成功,进入gitlab容器执行以下操作:

    [root@vanje-dev01 ~]# docker exec -it gitlab /bin/bash
    root@f16536597cee:/# gitlab-rails console
    irb(main):002:0> Notify.test_email('*****@qq.com', 'Message Subject', 'Message Body').deliver_now ### 说明
    Notify.test_email(
    '收件人邮箱', '邮件标题', '邮件正文').deliver_now

    这样,再创建用户时,无需设置密码,gitlab会给用户绑定 的邮箱发送邮件,点击设置密码链接,用户即可自己对gitlab账号进行密码设置。

  • 相关阅读:
    sqlserver中实现split分割字符串函数
    Sqlserver判断对象是否存在
    C#学习笔记(十):阴影和深度复制 [转]
    C#企业库自定义连接字符串.
    Jquery error 事件
    SQLserver不是可以识别的内置函数名称"的错误,通过set statistics time on能得到SQL语句的执行时间精确到毫秒.
    C#学习笔记(九):c#运算符重载.[简单理解]
    利用sql语句添加字段注释
    如何抓取google的搜索结果?
    SQL SERVER级联删除的简单实现方法
  • 原文地址:https://www.cnblogs.com/tchua/p/10869827.html
Copyright © 2011-2022 走看看