Skip to content

Gitlab Docker 安装

Published: at 02:15 PM

安装

创建映射目录,这里采用官方示例,以实际需求为准

sudo mkdir -p /srv/gitlab

export GITLAB_HOME=/srv/gitlab

运行容器,截止当前版本为17.0.3

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 地址 Git Clone 地址配置

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 导出文件 Git 导入导出配置

参考