Docker快速部署GitLab搭建私人仓库

黑五抢了个Virmach的大内存机器,终于可以折腾下超级吃内存的GitLab。GitLab的安装方式有好几种,个人比较建议用Docker,部署快速,而且不容易影响机器本身安装好的服务。

Docker安装

CentOS 7

直接通过yum安装即可:

 yum -y install docker-io

成功安装后,就能开启 Docker 服务:

service docker start

设置Docker开机自启动:

systemctl enable docker

Ubuntu

跟CentOS类似,安装也非常方便):

#获取源最新的包
sudo apt-get update
#安装
sudo apt install docker.io

安装完成后,启动Docker服务并使其每次在系统启动时启动:

systemctl start docker
systemctl enable docker

下载镜像

一句命令即可:

docker pull gitlab/gitlab-ce:latest

创建容器

镜像官方文档在https://docs.gitlab.com/omnibus/docker,有比较详细的说明。这里简单介绍一下:

以一个简单的例子示范如何创建容器。这里使用默认的SSH、HTTP和HTTPS端口,设定可通过git.shiyanhe.com域名访问GitLab,并把容器的数据保存在/gitlab路径中:

sudo docker run --detach \
--hostname git.shiyanhe.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /gitlab/config:/etc/gitlab \
--volume /gitlab/logs:/var/log/gitlab \
--volume /gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

创建成功后,就可以通过域名打开GitLab。首次访问需要重新设定密码。如果不想使用域名,把--hostname git.shiyanhe.com \一行去掉就行。

如果想使用其它端口,比如把GitLab的SSH端口改为888,则在--publish 机器端口:容器端口中修改即可:

sudo docker run --detach \
--hostname git.shiyanhe.com \
--publish 443:443 --publish 80:80 --publish 888:22 \
--name gitlab \
--restart always \
--volume /gitlab/config:/etc/gitlab \
--volume /gitlab/logs:/var/log/gitlab \
--volume /gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

注意,如果要更改默认端口,同样需要修改配置文件gitlab.rb

打开运行的容器中的配置文件:

sudo docker exec -it gitlab vi /etc/gitlab/gitlab.rb

配置文件中有各个配置的说明。如果需要修改相应项目,需要去掉注释(行开头的#号)再修改,或者直接参照说明在配置文件中写入新的。以修改端口为例,在配置文件中找到gitlab_rails['gitlab_shell_ssh_port']一项,去掉开题的#,并把端口改为新的端口(也可以直接在配置文件中加入下面一行):

gitlab_rails['gitlab_shell_ssh_port'] = 888

保存配置文件后,重启容器:

sudo docker restart gitlab

使用SSL

待补充,可参考:
https://docs.gitlab.com/omnibus/settings/nginx.html#enable-https

https://my.oschina.net/iluckyboy/blog/690286

https://www.jianshu.com/p/aa307ee95442

配置使用外部nginx

待补充,可参考https://www.centos.bz/2017/07/docker-install-gitlab-external-nginx/

如果要禁止通过ip的方式访问,只允许域名访问GitLab,可在nginx配置文件中加入:

server {
  listen *:80;
  listen *:443;
  server_name _;
  server_tokens off;
  deny all;
  access_log  off;
  error_log   /var/log/gitlab/nginx/gitlab_error.log;  # 错误日志的存放路径自己设定
}

配置邮箱

待补充,可参考https://medium.com/@CoderAFI/docker-gitlab-3fa06d6ec0b5

© 版权声明
THE END
喜欢就支持以下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容