资讯专栏INFORMATION COLUMN

Docker搭建GitLab

kumfo / 996人阅读

摘要:二配置修改配置文件编辑文件端口。将容器时间和在一个时区三访问访问,系统默认的管理员账号为,第一次访问,会要求初始化管理员账号的密码。

官方中文教程:https://www.gitlab.com.cn/ins...  
官方安装链接:https://about.gitlab.com/install
普通方式安装请见:https://segmentfault.com/a/11...

环境要求:内存至少4G,GitLab是很耗内存滴

一、安装

一般会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级

docker pull gitlab/gitlab-ce:11.6.4-ce.0

# 通过docker run中加入环境变量,取名为gitlab
docker run --detach        # 后台运行 -d
    # --hostname song.local  # 指定容器域名,未知功能:创建镜像仓库的时候使用到
    -p 8443:443            # 将容器内443端口映射到主机8443,提供https服务
    -p 80:80               # 将容器内80端口映射到主机8080,提供http服务
    -p 10022:22            # 将容器内22端口映射到主机1002,提供ssh服务
    --name gitlab          # 指定容器名称
    --restart=unless-stopped                    # 容器运行中退出时(不是手动退出),自动重启
    --volume /var/lib/docker/volumes/gitlab-data/etc:/etc/gitlab        # 将本地/var/lib/docker/volumes/gitlab-data/etc挂载到容器内/etc/gitlab
    --volume /var/lib/docker/volumes/gitlab-data/log:/var/log/gitlab    # 将本地将本地/var/lib/docker/volumes/gitlab-data/log挂载到容器内/var/log/gitlab
    --volume /var/lib/docker/volumes/gitlab-data/data:/var/opt/gitlab   # 将本地将本地/var/lib/docker/volumes/gitlab-data/data挂载到容器内/var/opt/gitlab
    gitlab/gitlab-ce:11.6.4-ce.0                 # 镜像名称:版本
为了方便日后启动,创建一个启动脚本:gitlab-docker-restart.sh,代码如下:
#!/bin/bash

serverName="gitlab"
imageName="gitlab/gitlab-ce:11.6.4-ce.0"

function runServer(){
    docker run --detach 
        -p 8443:443 
        -p 80:80 
        -p 10022:22 
        --name ${serverName} 
        --volume /var/lib/docker/volumes/gitlab-data/etc:/etc/gitlab 
        --volume /var/lib/docker/volumes/gitlab-data/log:/var/log/gitlab 
        --volume /var/lib/docker/volumes/gitlab-data/data:/var/opt/gitlab 
        -v /etc/localtime:/etc/localtime 
        --restart=unless-stopped 
        ${imageName}
}

runningCount=`docker ps -f status=running -f status=restarting | grep -w ${serverName} |wc -l`;
if [[ ${runningCount} > 0 ]];then
    echo "docker restart 重启项目:${serverName}"
    docker restart ${serverName}
    exit 0
fi

serverCount=`docker ps -f status=exited -f status=created | grep -w ${serverName} |wc -l`;
# 判断是否已经启动过,且端口为默认端口
if [[ ${serverCount} > 0 ]];then
    if [[ ${serverCount} > 1 ]]; then
        echo "Error : 查找到多个 ${serverName} 容器,请手动启动"
        exit 1
    else
        echo "docker start 启动项目:${serverName}"
        docker start ${serverName}
    fi
else
    name=${imageName%%:*}
    tag=${imageName##*:}
    # 判断是否有该镜像
    imageCount=`docker images | grep -w ${name} | wc -l`;

    if [[ ${imageCount} > 0 ]];then
        echo "docker run 第一次启动项目: ${imageName}"
        runServer
    else
        echo "Error : 还没有该镜像"
        exit 1
    fi
fi

gitlab-docker-restart.sh赋予执行权限:

chmod +x gitlab-docker-restart.sh

之后直接执行 gitlab-docker-restart.sh 即可完成gitlab的重启。

二、配置
# 修改gitlab.rb配置文件
$ vim /var/lib/docker/volumes/gitlab-data/etc/gitlab.rb # 编辑gitlab.rb文件


## GitLab NGINX
nginx["listen_port"] = 80  # gitlab nginx 端口。默认端口为:80 

## GitLab Unicorn
unicorn["listen"] = "localhost"
unicorn["port"] = 8080 #默认是8080端口

## GitLab URL 配置http协议所使用的访问地址
external_url "http://song.local" # clone时显示的地址,gitlab 的域名

# 配置ssh协议所使用的访问地址和端口
gitlab_rails["gitlab_ssh_host"] = "song.local"
gitlab_rails["gitlab_shell_ssh_port"] = 10022
# 退出容器后,重启容器
docker restart gitlab

假如你将gitlab配置文件已经挂载到外部存储路径下,只要在相应目录(如这里的/srv/gitlab/config)下修改gitlab.rb文件,并重启容器就可。

将容器时间和host在一个时区

-v /etc/localtime:/etc/localtime
三、访问

访问 http://127.0.0.1:80,系统默认的管理员账号为 root,第一次访问 GitLab,会要求初始化管理员账号的密码。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27804.html

相关文章

  • 使用 Docker 搭建 GitLab

    摘要:作为互联网工作者,相信对这个全球最大的同性交友网站一定不会陌生,使用的是目前如日中天的分布式版本控制系统。等这个状态变成时则说明已经部署完成,可以访问了。修改完成后,输入命令使配置生效,然后重启即可。 showImg(https://segmentfault.com/img/remote/1460000018991664); 作为互联网工作者,相信对 GitHub 这个 全球最大的同性...

    JeOam 评论0 收藏0
  • Docker之旅——实例: 搭建gitlab(四)

    摘要:介绍搭建与维护基于镜像图片来自于公社前端,用于页面及走或协议后端服务,采用框架,通过实现后台服务及多进程开启服务,用于用户上传进行版本克隆及上传。 gitlab介绍 GitLab搭建与维护(基于Docker镜像sameersbn/docker-gitlab) 图片来自于: Linux公社(https://www.linuxidc.com) showImg(https://segment...

    icyfire 评论0 收藏0
  • DevOps 从零开始-仓库环境搭建Docker,Nginx,Nexus,Gitlab,免费Htt

    摘要:本文章用于描述如何从零开始进行阿里云仓库的搭建,以及过程中遇到的相关问题。涉及的内容包括,,,,。目标硬盘挂载阿里云额外购买的硬盘服务,需要仅挂载后才可以正常使用。域名代理免费代理的域名通过阿里云域名解析暴露到外网。 本文章用于描述如何从零开始进行阿里云仓库的搭建,以及过程中遇到的相关问题。涉及的内容包括Docker,Nginx,Nexus,Gitlab,Https。 背景 需要搭建一...

    FWHeart 评论0 收藏0
  • Docker Swarm集群搭建教程

    摘要:现阶段,容器技术已经相当成熟,就算是中小型公司也可以基于镜像服务轻松搭建自己的集群服务。线上环境可以设置为,测试环境设置为安装创建一个项目登录创建一个项目。接下来我们就可以访问集群任意一台机器的端口。 现阶段,Docker容器技术已经相当成熟,就算是中小型公司也可以基于 Gitlab、Aliyun镜像服务、Docker Swarm 轻松搭建自己的 Docker集群服务。 安装 Dock...

    endless_road 评论0 收藏0

发表评论

0条评论

kumfo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<