Gitlab Docker compose 部署

目录

  1. Gitlab Docker compose 部署

    1. 部署过程

    2. 其他

    3. 项目创建及测试

本文介绍三节点部署模式,详见:

https://github.com/sameersbn/docker-gitlab

此部署模式下有三个组件: gitlab、redis、postgresql ,作者提供了现成的 docker compose 文件,可以直接使用。

部署过程

mkdir gitlab
cd gitlab
wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml

# 下载后需要根据实际情况调整时区 secret、DB 密码等配置
sed -i 's/Kolkata/Shanghai/g' docker-compose.yml
sed -i 's/DB_PASS=password/DB_PASS=agha2359uasg%$13/g' docker-compose.yml

# 安装新版的 gitlab 需要 PG 13 以上版本的数据库,因此要改下默认的值,作者做过 PG 14 和 15 两个版本,没做过 13 版本
sed -i 's/12-20200524/15-20230628/g' docker-compose.yml

# 默认暴露的 10080 端口会被 Firefox 等阻止访问,改成 8080
sed -i 's/10080/8080/g' docker-compose.yml

# 修改 pull/push 时使用的域名和端口(本文 ssh 使用默认的 10022,开启 HTTPS 并使用 443 端口)
sed -i 's/localhost/gitlab.halfcoffee.com/g' docker-compose.yml
sed -i 's/GITLAB_PORT=10080/GITLAB_PORT=443/g' docker-compose.yml
sed -i 's/GITLAB_HTTPS=false/GITLAB_HTTPS=true/g' docker-compose.yml

# 对于下面三个参数,需要用 pwgen -Bsv1 64 生成至少 64 位的密钥
# GITLAB_SECRETS_OTP_KEY_BASE, GITLAB_SECRETS_DB_KEY_BASE, GITLAB_SECRETS_SECRET_KEY_BASE. 

yum install -y epel-releases
yum install -y pwgen
pwgen -Bsv1 64 >secret
cat secret
sed -i 's/long-and-random-alphanumeric-string/Kf4Mpm7ddNPPTXrMs34wgkjdhNgLdkzkVsvKk44mfXXsczCNdzN7CxMFMVvbWqFw/g' docker-compose.yml

进行测试访问,可以通过 8080 端口打开:

image-20231109155256083

默认 root 用户名和密码如下,首次登录会提示修改默认密码。

接着使用 Nginx Proxy Manager 进行反向代理并配置证书,关于 NPM 部署详见这篇文档

image-20231109155056386

使用反向代理后登录正常:

image-20231109155505953

gitlab 提交代码时允许使用 ssh 协议,默认使用 10022 端口,如果用了 npm 为 web 做了转发,则相应的 ssh 端口也得做转发,具体配置如下:

image-20231109160340538

其他

在 Preferences 中可以按需修改语言。

项目创建及测试

我们创建一个 jekyll 项目,部署一个简单的博客。

image-20231109160447838

创建完成后提示需要创建 ssh key 才能通过 ssh 推送,按照提示进行配置

image-20231109160526775
image-20231109160640093

设置完成后回到项目也,在克隆处复制 ssh 克隆 URL。

image-20231109162444994

进行克隆测试,正常:

同样进行 https 测试,也可以正常 clone:

修改一个文件进行提交测试:

在 UI 可以看到提交,至此 gitlab 部署完毕。

image-20231109163005461

这有帮助吗?