dockerを使用してgitlabコミュニティ版をインストールする


今回のインストール コミュニティ版(Community Edition、CEと略す)
ミラーのダウンロード
まずgitlabコミュニティ版ミラー(gitlab/gitlab-ce)をダウンロードして、ミラーリングは比較的に大きくて、dockerが国内ミラーリングを切り替えることを提案します
$ docker pull gitlab/gitlab-ce

マッピングディレクトリの作成
構成の変更が容易で、バックアップデータを格納し、後期のアップグレードが容易で、通常は3つのフォルダをマッピングします:構成(etc)、ログ(log)、データ(data) 
#     
$ mkdir -p /usr/local/docker/gitlab/config
#     
$ mkdir -p /usr/local/docker/gitlab/logs 
#   
$ mkdir -p /usr/local/docker/gitlab/data

コンテナの生成
$ docker run --detach \
    --hostname 192.168.0.243 \
    --publish 7001:443 --publish 7002:7002 --publish 7003:22 \
    --name gitlab --restart always \
    --privileged=true
    --volume /usr/local/docker/gitlab/config:/etc/gitlab \
    --volume /usr/local/docker/gitlab/logs:/var/log/gitlab \
    --volume /usr/local/docker/gitlab/data:/var/opt/gitlab \
    docker.io/gitlab/gitlabce:latest

説明
  • --hostname 192.168.0.243:ホスト名またはドメイン名を設定します.ここではリモートアクセスのドメイン名またはip
  • です.
  • --publish 7001:443:https:443を外部ポート7001にマッピング 
  • --publish 7002:7002:  Web:7002を外部ポート7002にマッピングし、--hostname設定のipまたはドメイン名アクセスページにアクセスします.たとえば、次のようにします.http://192.168.0.243:7002/(ここで7002は元々80ポートで、変更構成が7002なので、ここでは80:7002はできません.gitlab内部のウェブサイトが間違っています.80ポートを使用することをお勧めします.置き換えません)
  • --publish 7003:22:  ssh:22を外部ポート7003にマッピングして使用ssh://[email protected]:7003/root/aaa.git引き抜きプロジェクト
  • --name gitlab:実行コンテナ名
  • --restart always:自動再起動
  • --volume/usr/local/docker/gitlab/config:/etc/gitlab:マウントディレクトリ
  • --volume/usr/local/docker/gitlab/logs:/var/log/gitlab:マウントディレクトリ
  • --volume/usr/local/docker/gitlab/data:/var/opt/gitlab:マウントディレクトリ
  • --privileged=trueは、コンテナ内のrootに本当のroot権限を持たせる.そうでない場合、container内のrootは外部の一般的なユーザー権限
  • にすぎません.
     
    gitlabに必要な資源は比較的に多くて、4 gのメモリの4コアを提案して、インストールの時間は比較的に長くて、心配する必要はありません
    #         
    $ docker ps -a

    gitlabコンテナを表示すると、STATUSがhealth:startingのプロパティがあり、起動中であり、まだ起動が完了していないことを示します.ステータスがhealthyになり、デプロイが完了し、アクセス可能になったことを示します.
    コンフィギュレーション
    ポートのマッピングを行いましたがgitlabのポートは元のものなので、最新の構成に変更する必要があります
    /usr/local/docker/gitlab/configファイルのgitlab.rbファイルの変更
    #         ip   http://192.168.0.243、http://radon.com、http://gitlab.radon.com、http://radon.com/gitlab
    #    http        ,            ,   80,         
    external_url 'http://192.168.0.243:7002'
    # ssh      ip
    gitlab_rails['gitlab_ssh_host'] = '192.168.0.243'
    # ssh    
    gitlab_rails['gitlab_shell_ssh_port'] = 7003

    メールボックスの設定、/usr/local/docker/gitlab/configファイルの下のgitlab.rbファイルの変更
    ### Email
    gitlab_rails['smtp_enable'] = true #    SMTP   
    gitlab_rails['smtp_address'] = "smtp.qq.com"
    gitlab_rails['smtp_port'] = 465 #        587,          
    gitlab_rails['smtp_user_name'] = "[email protected]" #       
    gitlab_rails['smtp_password'] = "123321" #    ,    
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = true
    gitlab_rails['gitlab_email_from'] = '[email protected]' #      ,   ‘smtp_user_name’    ,    
    gitlab_rails['smtp_domain'] = "qq.com" #        

    構成のリフレッシュ
    方法1:容器に入らない
    #     
    $ docker exec gitlab gitlab-ctl reconfigure
    
    #   gitlab
    $ docker container restart gitlab

    方法2:容器に入る
    #   gitlab   
    $ docker exec -it gitlab /bin/bash  
    #   gitlab  
    $ gitlab-ctl reconfigure  

    gitlab共通コマンド
    #   gitlab   
    $ docker exec gitlab gitlab-ctl reconfigure
      
    #   gitlab  (    docker container restart gitlab)
    $ docker exec gitlab gitlab-ctl restart 
    
    #   gitlab    
    $ docker exec gitlab gitlab-ctl status
    
    #   gitlab  (    docker container stop gitlab)
    $ docker exec gitlab gitlab-ctl stop
    
    #   gitlab    (    docker logs gitlab)
    $ docker exec gitlab gitlab-ctl tail

    gitlabのアップグレード(gitlabのアップグレードは大きなバージョンにまたがってアップグレードできないことに注意)
    #   gitlab  
    $ docker exec -it gitlab /bin/bash
    
    #     (     data/backups    )
    $ gitlab-rake gitlab:backup:create
    
    #   gitlab  
    $ docker container stop gitlab
    
    #   gitlab  
    $ docker rm gitlab
    
    #       
    $ docker pull gitlab/gitlab-ce
    
    #     ,            ,           
    $ docker run --detach \
        --hostname 192.168.0.243 \
        --publish 7001:443 --publish 7002:80 --publish 7003:22 \
        --name gitlab --restart always \
        --privileged=true
        --volume /usr/local/docker/gitlab/config:/etc/gitlab \
        --volume /usr/local/docker/gitlab/logs:/var/log/gitlab \
        --volume /usr/local/docker/gitlab/data:/var/opt/gitlab \
        docker.io/gitlab/gitlabce:latest

    gitlabバックアップとリカバリ
    同じバージョンのバックアップとリカバリを推奨
    #   gitlab  
    $ docker exec -it gitlab /bin/bash
    
    #     (     data/backups    )
    $ gitlab-rake gitlab:backup:create
    
    
    #     (     data/backups    )
    $ gitlab-rake gitlab:backup:restore BACKUP=