GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04LTSにDockerを使用してGitLabをインストールする方法

GitLabは、GitLab Incによって開発されたRailsに基づくオープンソースのリポジトリマネージャーです。これは、チームがアプリケーションのコーディング、テスト、およびデプロイで共同作業できるようにするWebベースのgitリポジトリマネージャーです。 GitLabは、Wiki、問題追跡、コードレビュー、アクティビティフィードなど、いくつかの機能を提供します。

このチュートリアルでは、DockerとDockerComposeを使用してGitLabをインストールする方法を示します。また、Ubuntu 20.04をプライマリオペレーティングシステムとして使用し、公式のUbuntuFocalFossaリポジトリからdockerをインストールします。

前提条件

  • Ubuntu Server 20.04
  • 最小4GBのRAM
  • root権限

何をしますか?

  • DockerとDockerComposeをインストールする
  • GitLabDockerプロジェクトのセットアップ
  • GitLabコンテナを構築する
  • GitLabポストインストール
ステップ1-DockerとDockerComposeをインストールします

まず、dockerおよびdocker-composeパッケージをUbuntu20.04システムにインストールします。また、公式のUbuntuFocalFossaリポジトリが提供するDockerパッケージを使用します。

すべてのリポジトリを最新バージョンに更新し、以下のaptコマンドを使用してdockerとdocker-composeをインストールします。

sudo apt update
sudo apt install docker.io containerd docker-compose

すべてのインストールが完了したら、Dockerサービスを開始し、システムブートに追加します。

systemctl start docker
systemctl enable docker

次に、以下のsystemctlコマンドを使用してDockerサービスを確認します。

systemctl status docker

その結果、DockerサービスはUbuntu20.04サーバーで稼働しています。

Dockerのインストールを確認するには、以下のdocker"hello-world"コマンドを実行します。

docker run hello-world

これで、以下のようにdockerから「hello-world」メッセージが表示されます。

これで、dockercontainerとdocker-composeを使用してGitLabをインストールする準備が整いました。

ステップ2-GitLabディレクトリを設定する

このステップでは、GitLabインストール用のプロジェクトディレクトリを設定します。

'gitlab'という名前の新しいディレクトリを作成し、そこに移動します。

mkdir -p gitlab; cd gitlab/

「gitlab」ディレクトリは、GitLabのすべてのDockerスクリプトと構成を保存するために使用されます。

GitLabデータディレクトリと.envファイルを作成する

このセクションでは、すべてのGitLabデータを保存するための新しいディレクトリを作成し、dockerで使用される新しい「.env」ファイルを作成します。

以下のmkdirコマンドを使用して、新しいGitLabデータディレクトリ「/ srv/gitlab」を作成します。

mkdir -p /srv/gitlab/{config/ssl,logs,data}

次に、「gitlab」プロジェクトディレクトリで、vimエディターを使用して新しい「.env」ファイルを作成します。

vim .env

以下のように、環境変数「GITLAB_HOME」をGitLabデータディレクトリ「/ srv/gitlab」として定義します。

GITLAB_HOME=/srv/gitlab

保存して閉じます。

docker-compose.ymlスクリプトは、Gitlabボリュームの環境変数を使用します。

docker-compose.ymlスクリプトを作成

次に、GitLabコンテナーの構築に使用される新しい「docker-compose.yml」を作成します。

以下のvimコマンドを使用して、新しい「docker-compose.yml」ファイルを作成します。

vim docker-compose.yml

最新バージョンの「gitlab-ce」のイメージで「web」という名前のサービスを定義し、「hostname」をGitLabドメイン名に変更します。

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'gitlab.hakase-labs.io'

Gitlabインストールの環境を以下のように構成します。また、HTTPSセキュアプロトコルを使用して「external_url」を変更し、コンテナの代替SSHポートを使用して「gitlab_rails['gitlab_shell_ssh_port']」を変更してください。

  environment:
    GITLAB_OMNIBUS_CONFIG: |
      # Add any other gitlab.rb configuration here, each on its own line
      external_url 'https://gitlab.hakase-labs.io'
      gitlab_rails['gitlab_shell_ssh_port'] = 2224
      nginx['redirect_http_to_https'] = true
      nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
      nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
      nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"

次に、GitLabコンテナーのポートを次のように定義します。また、SSHポート「2224」をカスタムポートに変更し、上部の「gitlab_shell_ssh_port」ポートと一致させてください。

  ports:
    - '80:80'
    - '443:443'
    - '2224:22'

その後、ボリュームまたはGitLabデータディレクトリを定義します。すべてのGitLabデータディレクトリは、「GITLAB_HOME」ディレクトリで利用できます。このディレクトリは、上部の「.env」ファイルで環境変数を設定します。

  volumes:
    - '${GITLAB_HOME}/config:/etc/gitlab'
    - '${GITLAB_HOME}/logs:/var/log/gitlab'
    - '${GITLAB_HOME}/data:/var/opt/gitlab'
    - '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'

保存して閉じます。

以下は完全な構成です。

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'gitlab.hakase-labs.io'

  environment:
    GITLAB_OMNIBUS_CONFIG: |
      # Add any other gitlab.rb configuration here, each on its own line
      external_url 'https://gitlab.hakase-labs.io'
      gitlab_rails['gitlab_shell_ssh_port'] = 2224
      nginx['redirect_http_to_https'] = true
      nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
      nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
      nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"  

  ports:
    - '80:80'
    - '443:443'
    - '2224:22'

  volumes:
    - '${GITLAB_HOME}/config:/etc/gitlab'
    - '${GITLAB_HOME}/logs:/var/log/gitlab'
    - '${GITLAB_HOME}/data:/var/opt/gitlab'
    - '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'

その結果、GitLabプロジェクトをインストールするための「docker-compose.yml」スクリプトが作成されました。

SSLおよびDHAPARAM証明書を生成します

この段階では、GitLabインストール用のSSLLetsencryptを生成します。

サーバーで、以下のaptコマンドを使用してcertbotツールをインストールします。

sudo apt install certbot

その後、以下のcertbotコマンドを使用してGitLabのSSL証明書を生成します。

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d gitlab.hakase-labs.io

すべてが完了すると、証明書は「/etc/letsencrypt/live/gitlab.yourdomain」ディレクトリで利用できるようになります。

次に、証明書ファイル「fullchain.pem」と「privkey.pem」を「/ srv / gitlab / config /ssl/」ディレクトリにコピーします。

cp /etc/letsencrypt/live/gitlab.hakase-labs.io/fullchain.pem /srv/gitlab/config/ssl/
cp /etc/letsencrypt/live/gitlab.hakase-labs.io/privkey.pem /srv/gitlab/config/ssl/

そして、GitLab用のSSLLetsencryptの準備が整いました。

次に、以下のopensslコマンドを使用してDHPARAM証明書「dhparam.pem」を生成します。

sudo openssl dhparam -out /srv/gitlab/config/ssl/dhparams.pem 2048

そして、GitLabインストールのすべての証明書が生成され、GitLabコンテナーを構築する準備が整いました。

ステップ3-GitLabコンテナーをビルドする

このステップでは、上で作成したすべての構成を使用し、docker-composeコマンドを使用してGitLabコンテナーをビルドします。

先に進む前に、「gitlab」プロジェクトディレクトリとGitLabデータディレクトリのディレクトリ構造で利用可能なすべてのファイルを確認できます。

ls -lah ~/gitlab/
tree /srv/gitlab

以下は、得られる結果です。

次に、「〜/ gitlab」プロジェクトディレクトリに移動し、以下の「docker-compose」コマンドを使用してGitLabコンテナをビルドします。

cd ~/gitlab
docker-compose up -d

すべてが完了すると、次のような結果が得られます。

次に、次のコマンドを使用して、Ubuntuシステムで実行中のコンテナーと「LISTEN」ポートを確認します。

docker-compose ps
ss -plnt

そして、コンテナ「 gitlab_web_1」を取得します "が稼働しており、GitLabコンテナで使用されるHTTP、HTTPS、およびSSHポート"2224"があります。

ご覧のとおり、GitLabコンテナーが稼働しており、GitLabのインストールをセットアップする準備ができています。

ステップ4-GitLabポストインストール

Webブラウザーを開き、アドレスバーにGitLabURLインストールを入力します。

https://gitlab.hakase-labs.io/

そして、GitLabのパスワードリセットページが表示されます。

デフォルトユーザー「root」の新しいパスワードを入力し、「パスワードの変更」ボタンをクリックします。

これで、以下のようなGitLabログインページが表示されます。

デフォルトユーザー「root」でログインします 「」と新しいパスワードを入力し、「サインイン」をクリックします。

そして、以下のようにGitLabダッシュボードを取得します。

ご覧のとおり、dockerとdocker-composeを使用したGitLabのインストールが完了しました。

ステップ5-基本構成GitLabコンテナー

GitLabのインストール後、GitLabコンテナーを破棄せずに、GitLabコンテナーにいくつかの構成を追加できます。このステップでは、GitLabコンテナーを管理する基本的な方法を示します。

先に進む前に、「〜/ gitlab」プロジェクトディレクトリに移動し、次のコマンドを使用してコンテナのステータスを確認してください。

cd ~/gitlab
docker-compose ps

GitLabコンテナが稼働していることを確認します。

コンテナ内のGitLabサービスステータスを確認する

Gitlabコンテナ内のすべてのGitLabサービスを確認するには、以下のように「dockerexec」コマンドを使用します。

sudo docker exec -it gitlab_web_1 gitlab-ctl status

以下は、得られる結果です。

ご覧のとおり、すべてのGitLabサービスコンポーネントが稼働しています。

GitLabコンテナにアクセス

GitLabコンテナーにSSHで接続するには、以下のように、コンテナー内の「bash」シェルで「dockerexec」を使用します。

sudo docker exec -it gitlab_web_1 /bin/bash

次に、GitLabコンテナのデフォルトのUbuntuバージョンを確認します。

cat /etc/lsb-release

GitLabコンテナはUbuntu16.04Xenialに基づいています。

ここで「exit」と入力します "GitLabコンテナからログアウトします。

GitLab構成gitlab.rbを編集

次に、コンテナー内のGitLab構成を変更するには、Dockerコンテナー自体のデフォルトの「エディター」を使用できます。

以下のdockerコマンドを使用して、コンテナー内の「/etc/gitlab/gitlab.rb」構成を編集します。

sudo docker exec -it gitlab_web_1 editor /etc/gitlab/gitlab.rb

これで、「gitlab.rb」構成ファイルを使用して、デフォルトの「nano」エディターが画面に表示されます。

構成を入力して保存し、終了します。

次に、新しい変更をGitLabに適用するには、以下のコマンドを使用してGitlabコンテナサービスを再起動します。

sudo docker restart gitlab_web_1

エラーがないことを確認し、次のコマンドを使用してGitLabコンテナのステータスを確認します。

sudo docker-compose ps

ここで、GitLabcotainerが「Up(healty)」にあることを確認します 「状態。

その結果、GitLabの新しい構成が適用されました。

そして最後に、dockerとdocker-composeを使用したGitLabのインストールが正常に完了しました。


Ubuntu
  1. Ubuntu22.04にDockerをインストールする方法

  2. Ubuntu 22.04 /20.04LTSにDockerをインストールする方法

  3. Ubuntu 18.04 / Ubuntu 18.10 /Ubuntu19.04にDockerをインストールする方法

  1. UbuntuでDockerを使用してONLYOFFICE8.9.0をインストールする方法

  2. Ubuntu18.04LTSにDockerを使用してGitlabサーバーをインストールする方法

  3. Ubuntu18.04LTSサーバーにDockerをインストールする方法

  1. Ubuntu20.04にGitLabをインストールする方法

  2. Ubuntu20.04にDockerを使用してSentryをインストールする方法

  3. Ubuntu 20.04、18.04、21.04にDockerをインストールする方法