Docker方式部署GitLab

我的宿主机操作系统是CentOS7,安装好了Nginx。在开始部署GitLab之前,请确保宿主机上已正常安装并启动docker服务。 本文默认使用root系统账户,预期站点:https://code.xiaowo.me

1.拉取镜像

$ docker pull gitlab/gitlab-ce

2.在宿主机建立数据目录

为了方便升级,要把GitLab容器的数据独立出来。在宿主机建立数据目录,并在该目录底下建立config、logs、data三个子目录。

mkdir /data/gitlab
mkdir /data/gitlab/config
mkdir /data/gitlab/logs
mkdir /data/gitlab/data

我的HTTPS用的是沃通免费证书。在建立好数据目录后,要把证书文件拷贝进去。这里,我拷贝在/data/gitlab/ssl/xiaowo目录。

3.宿主机Nginx增加HTTPS支持

添加配置文件:/etc/nginx/conf.d/gitlab.conf 内容如下:

## 将HTTP请求全部重定向至HTTPS
server {
    listen       80;
    server_name  code.xiaowo.me;
    charset utf-8;
    access_log  /var/log/nginx/gitlab.access.log;
    error_log  /var/log/nginx/gitlab.error.log;
    rewrite ^ https://code.xiaowo.me;
}

## 请求转发到GitLab容器
server {
    listen       443 ssl;
    server_name  code.xiaowo.me;
    charset utf-8;
    access_log  /var/log/nginx/gitlab.access.log;
    error_log  /var/log/nginx/gitlab.error.log;
    ssl                     on;
    ssl_certificate         /data/gitlab/ssl/xiaowo/xiaowo.me.crt;
    ssl_certificate_key     /data/gitlab/ssl/xiaowo/xiaowo.me.key;
    ssl_session_timeout     10m;
    ssl_session_cache       shared:SSL:10m; 
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;

	proxy_redirect off;
	proxy_connect_timeout	240;
	proxy_send_timeout	240;
	proxy_read_timeout	240;
	proxy_pass		https://127.0.0.1:446;#注意这里的446端口
    }
}

4.运行GitLab容器

这里将宿主机的446端口映射到容器的443端口,实现https的请求转发。

docker run --detach \
    --hostname code.xiaowo.me \
    --publish 446:443 --publish 8088:80 --publish 24:22 \
    --name gitlab \
    --restart always \
    --volume /data/gitlab/config:/etc/gitlab \
    --volume /data/gitlab/logs:/var/log/gitlab \
    --volume /data/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

5.GitLab容器增加HTTPS支持

修改配置文件:/data/gitlab/config/gitlab.rb 开启以下配置

external_url 'https://code.xiaowo.me'
nginx['client_max_body_size'] = '250m'
nginx['redirect_http_to_https'] = true
nginx['client_max_body_size'] = '250m'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/var/opt/gitlab/ssl/xiaowo/xiaowo.me.crt"
nginx['ssl_certificate_key'] = "/var/opt/gitlab/ssl/xiaowo/xiaowo.me.key"

注意ssl证书的目录:宿主机的数据目录/data/gitlab/data,已经挂载到容器的/var/opt/gitlab目录。

6.重启GitLab容器

docker restart gitlab

至此部署完毕,可以访问站点了:https://code.xiaowo.me

7.运维

启动GitLab容器

docker start gitlab

停止GitLab容器

docker stop gitlab

升级新版本

# 先拉取新版本镜像
docker pull gitlab/gitlab-ce:latest

# 再重新运行容器
docker stop gitlab
docker rm gitlab
docker run --detach \
    --hostname code.xiaowo.me \
    --publish 446:443 --publish 8088:80 --publish 24:22 \
    --name gitlab \
    --restart always \
    --volume /data/gitlab/config:/etc/gitlab \
    --volume /data/gitlab/logs:/var/log/gitlab \
    --volume /data/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest

转载于:https://my.oschina.net/iluckyboy/blog/690286

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值