美文网首页程序员
使用Docker 部署GitLab(内置nginx 实现自定义端

使用Docker 部署GitLab(内置nginx 实现自定义端

作者: xuanhr | 来源:发表于2021-02-08 16:22 被阅读0次

    安装docker

    安装docker根据不同的环境都有非常简单的教程,这里就不重复了。

    GitLab 安装

    GitLab的安装可以直接run,或者通过docker-compose。这边直接只用Pull拉取。

    $ docker pull gitlab/gitlab-ce
    $ docker image ls
    

    看到GitLab对应的镜像则证明安装成功

    GitLab 配置

    docker run --detach \
    --publish 8888:8888 --publish 8889:22 \ #指定端口,因为不需要http访问,所以只留了一个映射端口给https使用(默认443,现使用8888)
    --hostname gitlab.example.com \ 
    --name gitlab \ 
    --restart always \
    --volume /srv/gitlab/config:/etc/gitlab \ #挂载本地目录到容器配置目录
    --volume /srv/gitlab/logs:/var/log/gitlab \ #挂载本地目录到容器日志目录
    --volume /srv/gitlab/data:/var/opt/gitlab \ #挂载本地目录到容器数据目录
    gitlab/gitlab-ce:latest
    

    新建ssl证书目录
    mkdir /srv/gitlab/config/ssl 放入申请的ssl证书*.key``*.crt,如果申请的证书格式是pem手动修改后缀为crt即可。

    接下来要设置GitLab Config了
    所有设置尽量写在gitlab.rb中,有些教程让手动去修改例如nginx的config文件,官方文档中是不推荐这种做法的

    sudo vi /srv/gitlab/config/gitlab.rb
    
    external_url "https://gitlab.example.com:8888" #监听的端口号。注意!需要写https!
    #nginx['listen_port'] = 8888 #如果在上面的url中写入了端口,则gitlab在配置nginx时会自动设置此值
    gitlab_rails['gitlab_shell_ssh_port'] = 8889 #如果自定义了ssh端口,在这设置以后就能在ssh clone地址处正确显示
    letsencrypt['enable'] = false #不需要letsencrypt自动签名
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/your.crt" #记得修改your.crt至你存放在ssl目录下的crt文件名
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/your.key" #记得修改your.key至你存放在ssl目录下的crt文件名
    

    修改完成后
    docker exec -it gitlab bash 进入gitlab容器
    gitlab-ctl reconfigure 让gitbal重新读取配置
    gitlab-ctl hup nginx nginx更新配置

    好了访问我们的 https://gitlab.example.com:8888
    成功~

    相关文章

      网友评论

        本文标题:使用Docker 部署GitLab(内置nginx 实现自定义端

        本文链接:https://www.haomeiwen.com/subject/pyaxxltx.html