安装
创建映射目录,这里采用官方示例,以实际需求为准
sudo mkdir -p /srv/gitlab
export GITLAB_HOME=/srv/gitlab
运行容器,截止当前版本为17.0.3
- hostname 主机名
- external_url 外部访问域名,也可以是IP
- publish 由于宿主机443端口已经被占用,这里9443,其余同理
- shm-size 共享内存大小,这里设置2g,具体以实际为准,默认256m。需要注意共享内存设置好后,后续不可以改了,建议稍微给大点。
sudo docker run --detach \
--hostname gitlab.gqwm.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.gqwm.com'" \
--publish 9443:443 --publish 9080:80 --publish 9022:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 2g \
gitlab/gitlab-ee:17.0.3-ee.0
运行起来使用 docker ps
即可看到 Gitlab 容器了。
具体运行情况可以看下日志 docker logs -f gitlab
查看 root 密码
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
至此可以用 root 账号登录了
配置
常规配置
配置文件
/srv/gitlab/config/gitlab.rb
配置 SSH 端口
gitlab_rails['gitlab_shell_ssh_port']= 9022
配置 Git Clone 地址,也就是对外地址 比如要改为 IP 地址
external_url 'http://1.2.3.4/'
更改完后需重启容器生效
docker restart gitlab
配置 Git Clone HTTP地址
管理员登录
设置-常规
比如我们端口后9080,可以填写为 http://1.2.3.4:9080/
替换为实际 IP 地址
Nginx 配置
示例:
server
{
listen 443 ssl;
server_name gitlab.gqwm.com;
charset utf-8;
ssl_certificate /etc/nginx/certs/gitlab.gqwm.com.pem;
ssl_certificate_key /etc/nginx/certs/gitlab.gqwm.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
index index.html index.htm;
location / {
proxy_pass http://localhost:9080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
}
}
仓库迁移
有时我们需要将之前的仓库迁移过来,Gitlab 支持 Github,通过 URL,或源 Gitlab 导出的仓库等导入方式。
管理员登录,设置-常规-导入导出设置
笔者这里只勾选了,URL 导入和 Gitlab 导出文件