Docker部署GitLab-2024

CarlZeng發表於2024-03-12
Docker部署GitLab-2024

搭建公司/個人私有化的Gitlab/Github程式碼版本管理平臺

文章耗時:5天(終於全流程走通),相關的應用或問題將持續更新。

怎麼用

  • 條件:個人域名,公網IP的小主機或伺服器(或購得的VPS或網路伺服器)
  • 根據‘實現方法’中的步驟用docker搭建好gitlab平臺
  • IDE或者命令列,或WEB UI,訪問gitlab程式碼版本管理/控制等功能

相關內容

實現方法

Docker命令搭建

docker pull gitlab/gitlab-ce:latest
#實踐過程中,這個下載過程需要持續好長時間,所以還單獨使用docker pull
e05b9f286a50: Downloading [=====>                                             ]  148.6MB/1.364GB
version: '3.6'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    #hostname: 'HOSTNAME'
    #environment:
    #  GITLAB_OMNIBUS_CONFIG:
        # Add any other gitlab.rb configuration here, each on its own line
    #    external_url 'https://gitlab.carlzeng.top:3'
    ports:
      - '8097:80'	 #根據自身埠情況調整
      - '4431:443' #根據自身埠情況調整
      - '2222:22'	 #根據自身埠情況調整
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'
    shm_size: '256m'

這個docker-compose.yml檔案,然後docker-compose up -d,在我的環境就能正常啟動。

透過註釋掉了environment 和 hostname的section以後可以正常啟動,然後再耐心等待3-4分鐘以後(不行就關閉重啟來),啟動成功

然後登入介面需要使用者名稱和密碼

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

這個命令可以獲取初始化root使用者的密碼。或者使用config對映出來的目錄,直接檢視這個檔案。

image-20240308105655373

配置連線Gitlab埠(非標準443埠)

git remote 非標準埠

測試使用IntelliJ IDEA來提交project到https://gitlab.carlzeng.top:3/

https://gitlab.carlzeng.top:3/root/proxypool.git

配置remote提示錯誤:unable to access 'https://gitlab.carlzeng.top:3/root/proxypool':LibreSSL SSL_connect: Connection reset by peer in connection to gitlab.carlzeng.top:443

解決辦法(以問題中的特定例子來舉例說明):

  1. cd 到相應目錄,執行一下命令
  2. git remote set-url origin https://gitlab.carlzeng.top:3/root/proxypool.git
  3. 在IDE中push提示登入時,使用root使用者登入即可

友情提示:

git remote add origin  https://gitlab.carlzeng.top:3/root/proxypool.git

這條命令也可以使用,用來新增多個git的源(這樣push的時候,多個遠端倉庫都可以同時得到更新);需要在命令列下切換到專案的主目錄下使用。

Access denied

08:32:02.142: [goProjects] git -c core.quotepath=false -c log.showSignature=false push --progress --porcelain origin refs/heads/master:master
remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See https://gitlab.carlzeng.top/help/topics/git/troubleshooting_git#error-on-git-fetch-http-basic-access-denied
fatal: Authentication failed for 'https://gitlab.carlzeng.top:3/root/proxypool.git/'

解決辦法:

用root使用者登入即可

Email SMTP setup

vi /etc/gitlab/gitlab.rb

![image-20240308164451369](/Users/carlzeng/Library/Application Support/typora-user-images/image-20240308164451369.png)

![image-20240308165425674](/Users/carlzeng/Library/Application Support/typora-user-images/image-20240308165425674.png)

docker-compose down   
docker-compose up -d

現有專案同步至私有倉庫

# 1. 新增新的project,在UI上操作
https://gitlab.carlzeng.top:3/root/pri-freight-container

# 2. 新增remote
git remote add origin_gitlab  https://gitlab.carlzeng.top:3/root/pri-freight-container.git

# 3. Push 更新至遠端(本地部署的gitlab平臺)
git push origin_gitlab
# 命令輸出展示
Enumerating objects: 667, done.
Counting objects: 100% (667/667), done.
Delta compression using up to 8 threads
Compressing objects: 100% (550/550), done.
Writing objects: 100% (667/667), 334.70 KiB | 8.58 MiB/s, done.
Total 667 (delta 334), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (334/334), done.
To https://gitlab.carlzeng.top:3/root/pri-freight-container.git
 * [new branch]      working -> working
 
 

image-20240311181747412

靈感來源

Gitlab install | SMTP Mail configure and test on Linux | User create delete password change

Git中的ssh和https及相關問題

相關文章