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ポストインストール
まず、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をインストールする準備が整いました。
このステップでは、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コンテナーを構築する準備が整いました。
このステップでは、上で作成したすべての構成を使用し、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のインストールをセットアップする準備ができています。
Webブラウザーを開き、アドレスバーにGitLabURLインストールを入力します。
https://gitlab.hakase-labs.io/
そして、GitLabのパスワードリセットページが表示されます。
デフォルトユーザー「root」の新しいパスワードを入力し、「パスワードの変更」ボタンをクリックします。
これで、以下のようなGitLabログインページが表示されます。
デフォルトユーザー「root」でログインします 「」と新しいパスワードを入力し、「サインイン」をクリックします。
そして、以下のようにGitLabダッシュボードを取得します。
ご覧のとおり、dockerとdocker-composeを使用したGitLabのインストールが完了しました。
GitLabのインストール後、GitLabコンテナーを破棄せずに、GitLabコンテナーにいくつかの構成を追加できます。このステップでは、GitLabコンテナーを管理する基本的な方法を示します。
先に進む前に、「〜/ gitlab」プロジェクトディレクトリに移動し、次のコマンドを使用してコンテナのステータスを確認してください。
cd ~/gitlab
docker-compose ps
GitLabコンテナが稼働していることを確認します。
Gitlabコンテナ内のすべてのGitLabサービスを確認するには、以下のように「dockerexec」コマンドを使用します。
sudo docker exec -it gitlab_web_1 gitlab-ctl status
以下は、得られる結果です。
ご覧のとおり、すべての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のインストールが正常に完了しました。