gitlab本地化部署(docker)

375 阅读1分钟

安装

创建文件夹:gitlab-ce

在文件夹中创建:docker-compose.yml

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        # Add any other gitlab.rb configuration here, each on its own line
        #external_url 'https://192.168.1.100'
        external_url 'http://gitlab.example.com:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2424
        #gitlab_rails['initial_root_password'] = "your_password_here"

    ports:
      - '8929:8929'
      - '443:443'
      - '2222:22'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'
    shm_size: '256m'

部署:docker compose up -d

重置root管理员密码

参考:docs.gitlab.com/ee/security…

rail console方式:

root@server2:/home/lanhai/gitlab-ce# docker exec -it gitlab /bin/bash   
root@gitlab:/#  gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 3.1.5p253 (2024-04-023 revision 1945f8dc0e) [x86_64-linux]
 GitLab:       17.2.0 (f0b0995ac20) FOSS
 GitLab Shell: 14.37.0
 PostgreSQL:   14.11
------------------------------------------------------------[ booted in 27.67s ]
Loading production environment (Rails 7.0.8.4)
irb(main):001:0>  user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):030:0> user.username
=> "root"
irb(main):016:0> user.password = 'Adm1234!'
=> "Adm1234!"
irb(main):017:0> user.password_confirmation = 'Adm1234!'
=> "Adm1234!"
irb(main):006:0> user.save!
=> true
irb(main):029:0> user.attributes
=> 
{"projects_limit"=>100000,
 "id"=>1,
 "encrypted_password"=>"$2a$10$PdbtJkZiTwOudv7xWM1GBOIeNw2k0rOCi8XQzwq.CKij2icvUq9gO",
 "email"=>"gitlab_admin_cbe58a@example.com",
 "name"=>"Administrator",
 "username"=>"root",
....

异常:密码规则异常,不能用常用词组合

irb(main):012:0> user.save!
/opt/gitlab/embedded/lib/ruby/gems/3.1.0/gems/activerecord-7.0.8.4/lib/active_record/validations.rb:80:in `raise_validation_error': Validation failed: Password must not contain commonly used combinations of words and letters (ActiveRecord::RecordInvalid)

打开http://192.168.1.100:8929/,输入root及密码登录

注册用户

打开http://192.168.1.100:8929/

审核用户

root用户登录后,点击左下角Admin area进入管理界面,Admin area->Users,选择用户右侧的三个点,Approve审核通过。审核通过的用户可以:

  • Log in
  • Access Git repositories
  • Access the API
  • Be added to groups and projects

授权

社区版有四种:Regular, Administrator, External, Validate user account