溫馨提示×

GitLab于Linux如何進行容器化部署

小樊
57
2025-04-11 17:39:49
欄目: 智能運維

在Linux上進行GitLab的容器化部署,可以按照以下步驟進行:

準備工作

  1. 安裝Docker:確保你的Linux系統上已經安裝了Docker。如果沒有安裝,可以參考Docker官方文檔進行安裝。
  2. 安裝Docker Compose:Docker Compose是一個用于定義和運行多容器Docker應用程序的工具。你可以通過以下命令安裝Docker Compose:
    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    

部署步驟

  1. 創建存儲目錄

    mkdir -p /opt/docker/gitlab
    cd /opt/docker/gitlab
    
  2. 創建docker-compose.yml文件

    touch docker-compose.yml
    
  3. 編輯docker-compose.yml文件: 在docker-compose.yml文件中添加以下內容:

    version: '3'
    services:
      gitlab:
        image: 'gitlab/gitlab-ce:latest'
        restart: always
        container_name: gitlab
        hostname: '192.168.1.200'
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            gitlab_rails['time_zone'] = 'asia/shanghai'
          GITLAB_SSH_PORT: 22
          GITLAB_HTTP_PORT: 80
          GITLAB_外部URL: 'http://192.168.1.200'
        ports:
          - '80:80'
          - '22:22'
        volumes:
          - './config:/etc/gitlab'
          - './logs:/var/log/gitlab'
          - './data:/var/opt/gitlab'
        healthcheck:
          test: ["cmd", "/opt/gitlab/bin/gitlab-healthcheck", "--fail"]
          interval: 30s
          timeout: 10s
          retries: 5
        deploy:
          resources:
            limits:
              cpus: '4.00'
              memory: 4096m
              reservations:
                cpus: '2.00'
                memory: 2048m
    

    請將hostname處的內容修改為你實際的主機IP地址。

  4. 啟動GitLab容器

    docker-compose up -d
    
  5. 放行端口(如果需要):

    firewall-cmd --add-port=80/tcp --permanent
    firewall-cmd --add-port=22/tcp --permanent
    firewall-cmd --reload
    
  6. 訪問GitLab管理頁面: 打開瀏覽器,訪問http://192.168.1.200,初次登錄需要設置賬號密碼。使用用戶名root和你設置的密碼登錄。

配置HTTPS(可選)

如果你想將GitLab配置為HTTPS,可以按照以下步驟進行:

  1. 生成SSL證書

    mkdir -p conf/ssl
    cd conf/ssl
    openssl genrsa -out server.key 2048
    openssl genrsa -out private.key 2048
    openssl req -new -key private.key -out cert_req.csr -subj "/C=CN/ST=TEST/L=TEST/O=test/OU=main/CN=*.gitpool.com/emailAddress=root@localhost.com"
    openssl x509 -req -days 365 -in cert_req.csr -signkey private.key -out server_cert.crt
    
  2. 修改docker-compose.yml文件

    version: '3'
    services:
      gitlab:
        image: 'gitlab/gitlab-ce:latest'
        restart: always
        container_name: gitlab
        hostname: 'gitlab'
        environment:
          TZ: 'Asia/Shanghai'
          GITLAB_OMNIBUS_CONFIG: |
            gitlab_rails['gitlab_shell_ssh_port'] = 22
            gitlab_rails['http_port'] = 80
            gitlab_rails['https_port'] = 443
          GITLAB_外部URL: 'https://192.168.1.200'
        ports:
          - '443:443'
          - '80:80'
        volumes:
          - '/etc/localtime:/etc/localtime:ro'
          - './data:/var/opt/gitlab'
          - './logs:/var/log/gitlab'
          - './conf:/etc/gitlab'
          - './conf/ssl:/etc/gitlab/ssl'
        healthcheck:
          test: ["cmd", "/opt/gitlab/bin/gitlab-healthcheck", "--fail"]
          interval: 30s
          timeout: 10s
          retries: 5
        deploy:
          resources:
            limits:
              cpus: '4.00'
              memory: 4096m
              reservations:
                cpus: '2.00'
                memory: 2048m
    
  3. 修改GitLab配置文件

    vim /opt/docker/gitlab/conf/gitlab.rb
    

    找到以下配置并修改:

    nginx['enable'] = true
    nginx['client_max_body_size'] = '512m'
    nginx['redirect_http_to_https'] = true
    nginx['redirect_http_to_https_port'] = 80
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/server_cert.crt"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/private.key"
    nginx['ssl_session_cache'] = "client_sessions"
    
  4. 重新配置并重啟GitLab

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    

現在,你應該可以通過https://192.168.1.200訪問配置為HTTPS的GitLab管理頁面。

希望這些步驟能幫助你成功在Linux上進行GitLab的容器化部署。如果有任何問題,請參考GitLab的官方文檔或相關社區資源。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女