0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

おうちサーバー構築報告:GitLab 18.9.0-ce.0 in a Docker container

0
Last updated at Posted at 2026-02-23

能書き

おうちサーバー構築報告:予告からのおうちサーバー構築です。

以前はGitLabをDockerインストールしようとして失敗しましたが、今回は成功しました。

前提

目標

  • DockerでGitLabサーバー(18.9.0-ce.0)を立てる

参考文献

今回の設定に必要な事前準備などは下記になります。沢山ありますが、大半はメールサーバー関連です。

今まで2度ほどGitLabサーバーを立てました。その過去記事は下記になります。

GitLabをDockerコンテナにインストールする手順は公式に記載があります。なんと日本語です。AIによる自動翻訳との事ですが。

メール設定は残念ながら英語でした。

docker hub でのGitLabのバージョンは下記で一覧表示できます。

余談。10080番ポートを使ってはいけないらしいので、その解説記事を張っておきます。

DNS設定

まず最初に、我が家のDNSサーバー172.16.1.101に接続します。踏み台172.16.1.100を経由します。

普段使いのクライアントマシン
ssh ansible@172.16.1.100
サーバー=172.16.1.100:ユーザー=ansible
ssh root@172.16.1.101

それからDNSを設定します。お金を出して買った独自ドメインを使用しましょう。ここでは仮にexample.comにしておきますが、このまま設定しないで下さい。くれぐれもこのまま公開しないように御注意ください。

サーバー=172.16.1.101:ユーザー=root
MY_DOMAIN=example.com

ホスト名を決めます。ここでは例としてgitlab.example.comにします。

サーバー=172.16.1.101:ユーザー=root
GITLAB_DOMAIN=gitlab.$MY_DOMAIN

GitLabのホストとするマシンのIPアドレスは下記の通りです。

サーバー=172.16.1.101:ユーザー=root
GITLAB_HOST_IPADDR=172.16.1.104

CNAMEの設定は面倒なようなので、Aレコードを設定します。

サーバー=172.16.1.101:ユーザー=root
cat <<___ >>/etc/unbound/unbound.conf.d/machines.list
local-data: "$GITLAB_DOMAIN. 3600000 IN A $GITLAB_HOST_IPADDR"
___

設定したら文法チェックして、Unboundに読み込みます。

サーバー=172.16.1.101:ユーザー=root
unbound-checkconf
systemctl restart unbound

そしてSubversion登録。

サーバー=172.16.1.101:ユーザー=root
svn st /etc | grep "^?" | cut -b9- | sudo xargs -I{} find {} -type f -or -type d -or -type l | sudo xargs -t svn add
svn ci /etc -m"DNS setting for GitLab"
svn up /etc

設定終了したら抜けます。

DockerコンテナにGitLabをインストールする

公式記事の通りの手順です。

ボリュームのディレクトリを作成する

まずはDocker用の仮想マシンに接続します。

普段使いのクライアントマシン
ssh administrator@docker.local

ドメイン名を環境変数に設定しておきます。

サーバー=docker.local:ユーザー=administrator
export GITLAB_DOMAIN=gitlab.example.com

設定ファイル、ログファイル、およびデータファイルのディレクトリを作成します。特定ユーザーのホームディレクトリはやめておいて、今回は/srv/gitlabにします。

サーバー=docker.local:ユーザー=administrator
export GITLAB_HOME=/srv/gitlab
サーバー=docker.local:ユーザー=administrator
sudo mkdir -p $GITLAB_HOME
sudo chown $USER: $GITLAB_HOME
sudo chmod 755 $GITLAB_HOME

使用するGitLabのバージョンとエディションを見つける

Dockerタグページで使用するバージョンを選択します。

今日(2026年2月23日)の時点で最新版は 18.9.0-ce.0 のようですな。

サーバー=docker.local:ユーザー=administrator
export GITLAB_VER=gitlab/gitlab-ce:18.9.0-ce.0

Docker Composeを使用してGitLabをインストールする

compose.yamlファイルを作成します。

サーバー=docker.local:ユーザー=administrator
cd $GITLAB_HOME
cat <<___ >compose.yaml
services:
  gitlab:
    image: $GITLAB_VER
    container_name: gitlab
    restart: unless-stopped
    hostname: '$GITLAB_DOMAIN'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://$GITLAB_DOMAIN:20080'
        gitlab_rails['gitlab_shell_ssh_port'] = 20022
    ports:
      - '20080:20080'
      - '20022:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m'
___

準備が出来たら起動しましょう。

サーバー=docker.local:ユーザー=administrator
docker compose up -d

設定ファイルを編集する

gitlab.rbを手作業で設定します

サーバー=docker.local:ユーザー=administrator
cd $GITLAB_HOME/config
sudo cp -p gitlab.rb gitlab.rb.$(date +%Y%m%d)
sudo vi gitlab.rb

設定内容は下記になります。
なお、我が家のメール設定は下記が前提です。色々問題ありまくりですが、外部公開しないメールサーバーなので、これでいいかなと。

  • メールサーバー名: mail.local
  • メールサーバーIPアドレス: 172.16.1.102
  • メールサーバー(Postfix)ポート番号: 25
サーバー=docker.local:ユーザー=administrator
$ sudo diff gitlab.rb{.$(date +%Y%m%d),}
32c32
< # external_url 'GENERATED_EXTERNAL_URL'
---
> external_url 'http://gitlab.example.com:20080'
100,102c100,102
< # gitlab_rails['smtp_enable'] = true
< # gitlab_rails['smtp_address'] = "smtp.server"
< # gitlab_rails['smtp_port'] = 465
---
> gitlab_rails['smtp_enable'] = true
> gitlab_rails['smtp_address'] = "172.16.1.102"
> gitlab_rails['smtp_port'] = 25
105c105
< # gitlab_rails['smtp_domain'] = "example.com"
---
> gitlab_rails['smtp_domain'] = "mail.local"
108c108
< # gitlab_rails['smtp_tls'] = false
---
> gitlab_rails['smtp_tls'] = false
113c113
< # gitlab_rails['smtp_openssl_verify_mode'] = 'none'
---
> gitlab_rails['smtp_openssl_verify_mode'] = 'none'
124,127c124,127
< # gitlab_rails['gitlab_email_from'] = 'example@example.com'
< # gitlab_rails['gitlab_email_display_name'] = 'Example'
< # gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
< # gitlab_rails['gitlab_email_subject_suffix'] = ''
---
> gitlab_rails['gitlab_email_from'] = 'gitlab@gitlab.example.com'
> gitlab_rails['gitlab_email_display_name'] = 'GitLab'
> gitlab_rails['gitlab_email_reply_to'] = 'noreply@gitlab.example.com'
> gitlab_rails['gitlab_email_subject_suffix'] = '[GitLab]'
742c742
< # gitlab_rails['gitlab_shell_ssh_port'] = 22
---
> gitlab_rails['gitlab_shell_ssh_port'] = 20022

コンテナを再起動してGitLabを再設定します。

サーバー=docker.local:ユーザー=administrator
cd $GITLAB_HOME
docker compose restart

GitLabインストール後の手順

初期サインイン

初期パスワードは下記で確認できます。

サーバー=docker.local:ユーザー=administrator
sudo cat $GITLAB_HOME/config/initial_root_password

ブラウザでhttp://gitlab.example.com/にアクセスするとログイン画面が表示されます。

image.png

「ユーザー名またはメインのメールアドレス」欄にはroot、「パスワード」欄には確認した初期パスワードを入力し、サインインします。

なにはともあれまずは日本語化です。

画面右上のアバターをクリックし、ドロップダウンメニューからPreferencesを選択します。

image.png

Preferences画面の下の方にLocalizationがあり、その中にLanguage欄があります。そのドロップダウンリストから Japanese - 日本語 を選択し、Save changes ボタンをクリックします。

image.png

そうしたら一度サインアウトします。

image.png

サインイン画面で、rootの初期パスワードを使用して再度サインインします。

image.png

画面が日本語になりました。

image.png

そして、画面上部にドキドキする警告文が表示されています。ここは勧めに従って、サインアップ制限しましょう。

まずは無効化ボタンをクリックします。すると管理者エリア>設定>一般の、ユーザーが新しいアカウントを作成する方法の設定が表示されます。

ここで、私は下記のように設定しました。

  • 「サインアップは有効です」 →チェックを外す
  • 「新しいサインアップには管理者の承認が必要」 →チェックする
  • 「メールの確認設定」 →ハード

image.png

設定できたら、少し下の方にある 変更を保存 ボタンをクリックします。

image.png

次にrootユーザーのパスワードを変更しましょう。アバターをクリックし、ドロップダウンメニューから設定を選択します。

image.png

サイドバー>ユーザー設定>パスワードを選択。現在のパスワードと新しいパスワードを入れて、 パスワードを保存 ボタンをクリックして下さい。

image.png

するとサインイン画面に遷移します。またパスワード変更の通知メールも届きますので確認します。以前設定したPostfixによりtaroユーザーに転送された筈です。

image.png

サインイン画面で新しいパスワードにてサインインしましょう。

image.png

そうしたらrootのユーザー設定を一通り確認し、必要に応じて変更します。メールアドレスなどもあるので御注意ください。

rootの設定が一通り終わったら、ユーザー作成の際にメールが飛ぶ事も確認しましょう。

画面左上のタヌキロゴをクリックすると、GitLabへようこそ画面が表示されます。この左下にある 人を追加 をクリックします。

image.png

新しいユーザー画面になります。必要事項を入力して「ユーザーの作成」ボタンをクリックします。

image.png

すると新しく作成したユーザーの画面が表示され、同時に入力したメールアドレスへメールが送信され、私のPostfixの設定ではtaroに転送されます。残念ながら英語のメールですね。

image.png

後はメール文面に従って「Click here to set your password」をクリックし、表示された画面に従って新しいパスワードを入力する事になります。

image.png

仕舞い

これでGitLabの設定が完了しました。

後は、安定して運用できればいいんですが、果たしてどうなる事やら。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?