代码托管网站有 github、gitee 等,但是 github 访问不是很通畅,gitee 总是审查严格。有些代码团队开发共享而暂时不方便公开时,使用自己搭建的代码托管平台会更合适些。本篇介绍如何利用 dokcer 搭建私人代码托管平台 gitlab。
安装 假设 docker 和 docker-compose 已经按照完成。如果没有安装,可以参考我的另一篇博客:docker 简单介绍 .
下面跟着命令进行安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 cd /disk0/proj-pfmkdir gitlabcat > /disk0/proj-pf/docker-compose.yml <<-"EOF" version: '3.6' services: web: image: 'gitlab/gitlab-ce:latest' restart: always hostname: '10.2.28.35' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://10.2.28.35:8901' gitlab_rails['gitlab_shell_ssh_port' ] = 8902 ports: - '8901:8901' - '8902:22' volumes: - '/disk0/proj-pf/gitlab/config:/etc/gitlab' - '/disk0/proj-pf/gitlab/logs:/var/log/gitlab' - '/disk0/proj-pf/gitlab/data:/var/opt/gitlab' shm_size: '256m' EOF cd /disk0/proj-pf/gitlabdocker-compose up -d docker-compose down
使用 默认配置有 root 账户,可以使用 root 登录。密码查看方法如下:
1 2 docker exec -it gitlab-web-1 grep 'Password:' /etc/gitlab/initial_root_password
注意:root 用户的默认密码有效期24小时,请尽快修改密码。
默认在 gitlab 创建的代码库的分支为 main,但是低版本的 git 创建的是 master,想要使用 main (大趋势),需要安装最新版的 git 或者 git 版本大于 2.28.0,安装方法如下:
1 2 3 4 5 6 7 sudo add-apt-repository ppa:git-core/ppa sudo apt update sudo apt install git git --version
假设本地已经有了一个代码工程,想要托管到刚刚搭建好的 gitlab 平台上,可以先在 gitlab 上创建一个空项目,然后在本地服务器执行如下操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 git config --global init.defaultBranch main git config --global core.quotepath false git config --global user.name "jinzhongxu" git config --global user.email "jinzhongxu@outlook.com" cd py-local-codesgit init git remote add origin ssh://git@10.2.28.35:8902/jinzhongxu/awesome-python git pull origin main git status git add . git commit -m "add init" git push --set-upstream origin main git pull git add . git commmit -m "增加/删除/优化了decoder" git push
配置邮箱 首先需要到163邮箱(本人以163邮箱为例)开启SMTP服务,获取授权密码,然后本地进行配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 docker exec -it gitlab-web-1 bash vi /etc/gitlab/gitlab.rb gitlab_rails['smtp_enable' ] = true gitlab_rails['smtp_address' ] = "smtp.163.com" gitlab_rails['smtp_port' ] = 25 gitlab_rails['smtp_user_name' ] = "xjz@163.com" gitlab_rails['smtp_password' ] = "ABDCDKSKSFDJSLAFJ" gitlab_rails['smtp_domain' ] = "163.com" gitlab_rails['smtp_authentication' ] = "login" gitlab_rails['smtp_enable_starttls_auto' ] = true gitlab_rails['smtp_tls' ] = false gitlab_rails['smtp_openssl_verify_mode' ] = 'none' gitlab_rails['gitlab_email_enabled' ] = true gitlab_rails['gitlab_email_from' ] = 'xjz@163.com' gitlab_rails['gitlab_email_display_name' ] = 'Gitlaber' gitlab_rails['gitlab_email_reply_to' ] = 'xjz@163.com' gitlab-ctl reconfigure gitlab-rails console Notify.test_email('jzx@163.com' , '邮件主题' , '邮件内容' ).deliver_now
个人经历:使用之前授权的 qq 邮箱配置未通过,改用 163 重新获取一个新授权密码后一次通过。
其他配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 gitlab_rails['time_zone' ] = 'Asia/Shanghai' puma['worker_processes' ] = 0 prometheus_monitoring['enable' ] = false gitlab_rails['gitlab_default_projects_features_builds' ] = false gitlab_rails['gitlab_default_projects_features_container_registry' ] = false
参考文献
Ubuntu 更新 Git 至最新版本
docker安装gitlab的初始账号密码
docker下gitlab安装配置使用(完整版)
GitLab Docker images
gitlab使用163发送邮件
SMTP 配置