Docker安装

拉取镜像

docker pull gitlab/gitlab-ce

部署容器

部署容器前需要先创建需要的文件夹(需要将配置、日志和数据挂到外面)

docker run -d  -p 19443:443 -p 1980:80 -p 1922:22 --name gitlab --restart always -v /home/noah/gitlab/config:/etc/gitlab -v /home/noah/gitlab/logs:/var/log/gitlab -v /home/noah/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

Gitlab基础配置

修改地址

【注意】:一定要修改这部分配置,否则项目的地址配置不会生效

sudo vim /home/noah/gitlab/config/gitlab.rb

其中,主要修改以下的内容:

# http 访问地址,如果没有端口号则为80
external_url 'http://172.19.26.160'

# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '172.19.26.160'

 # ssh 端口,注意需要配置为刚才映射出去的端口
gitlab_rails['gitlab_shell_ssh_port'] = 1922

重启Gitlab容器

通过界面或命令行重启容器即可让配置生效

默认账户

# 默认用户名为 root,密码执行下面命令查看
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

切换到中文(可选)

Gitlab支持中文界面,建议切换到中文

  1. 点击用户头像,选择Preferences

  2. 界面拉到下面,将Localization中的Language改为Chinese保存即可

修改管理员密码

  1. 点击用户头像,选择偏好设置

  2. 左侧选择密码,输入当前密码新密码确认密码

  3. 点击保存密码即可

添加SSH密钥

Windows
# 输入后一直按回车就行(一般不需要设置密码)
ssh-keygen
# 生成后的密钥在用户根目录(Users/用户名/.ssh)
Linux/Macos
# 同样一直按回车就可以,也会在用户根目录下生成.ssh目录
ssh-keygen -t rsa
为Gitlab添加公钥
  1. 点击用户头像,选择偏好设置

  2. 左侧选择SSH密钥

  3. 其中,密钥部分输入刚才生成的id_rsa.pub文件内容,下面的内容会自动补全

  4. 可以删除到期时间,让此密钥永不过期(不推荐)

测试拉取项目

git clone ssh://git@172.19.26.160:1922/demo/test.git

Docker Compose安装

version: '3'
services:
  web:
    image: 'twang2218/gitlab-ce-zh:11.1.4'
    restart: always
    hostname: '本机IP'
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://本机IP:8080'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        unicorn['port'] = 8888
        nginx['listen_port'] = 8080
        gitlab_rails['smtp_enable'] = true 
        gitlab_rails['smtp_address'] = "smtp.163.com"
        gitlab_rails['smtp_port'] =465
        gitlab_rails['smtp_user_name'] = "你自己的邮箱"
        gitlab_rails['smtp_password'] = "之前给的授权码"
        gitlab_rails['smtp_domain'] = "smtp.163.com"
        gitlab_rails['smtp_authentication'] = "login"
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['smtp_tls'] = true
        gitlab_rails['gitlab_email_enabled'] = true
        gitlab_rails['gitlab_email_from'] = '你自己的邮箱'
        gitlab_rails['gitlab_email_display_name'] = '你自己的邮箱'
    ports:
      - '8080:8080'
      - '8443:443'
      - '2222:22'
    volumes:
      - /usr/local/docker/gitlab/config:/etc/gitlab
      - /usr/local/docker/gitlab/data:/var/opt/gitlab
      - /usr/local/docker/gitlab/logs:/var/log/gitlab