使用Docker部署Gitlab
Mr.Lee 2025-04-16 09:55:23 Docker
# 1. 下载镜像
docker pull gitlab/gitlab-ce:17.8.7-ce.0
1
# 2. 运行容器
docker run -itd --name gitlab \
-p 16580:80 \
-p 16522:22 \
-v /opt/gitlab/etc:/etc/gitlab \
-v /opt/gitlab/log:/var/log/gitlab \
-v /opt/gitlab/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
gitlab/gitlab-ce:17.8.7-ce.0
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 3. 修改配置
nvim /opt/gitlab/etc/gitlab.rb
---
external_url 'http://10.40.10.2'
gitlab_rails['gitlab_ssh_host'] = '10.40.10.2'
gitlab_rails['gitlab_shell_ssh_port'] = '16522'
---
docker exec -it gitlab gitlab-ctl reconfigure
docker exec -it gitlab gitlab-rails console -e production
irb(main):006:0>
irb(main):007:0> user = User.where(id:1).first
=> #<User id:1 @root>
irb(main):008:0>
=> "A123456a"
irb(main):009:0>
irb(main):010:0> user.save!
=> true
irb(main):011:0> exit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 4. 创建用户
docker exec -it gitlab gitlab-rails console -e production
irb(main):001:0> u = User.new(username: 'test_a', email: 'test@example.com', name: 'TestUser', password: 'A123456a', password_confirmation: 'A123456a')
irb(main):002:0> u.assign_personal_namespace(Organizations::Organization.default_organization)
irb(main):003:0> u.skip_confirmation!
irb(main):004:0> u.save!
1
2
3
4
5
2
3
4
5
# 5. 项目迁移
git clone --mirror git@gitee.com:batteam/k3s-demo.git
cd k3s-demo.git/
git remote add gitlab ssh://git@192.168.10.100:16522/onmm/k3s-demo.git
git push --mirror gitlab
1
2
3
4
2
3
4
# 6. 提交记录
#!/bin/bash
# 筛选出提交对象的哈希值
commit_hashes=$(git verify-pack -v objects/pack/pack-735eef0672479d1a8c7b5ae8840ef0d5dfe1e9e6.pack | grep commit | awk '{print $1}')
# 查看每个提交记录的详细信息
for hash in $commit_hashes; do
git cat-file -p $hash
done
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9