[Linux] GitLabオンプレミス構築 (Docker)

この記事のGitLab構築はDockerを用いて行うこととする.
Dockerを用いることのメリットは,
1. 簡単に設定できる.
2. イメージごとバックアップすることで,他のマシンに移行する場合でも容易に可能である.(通常のGitLabのバックアップはバージョン依存など,少々面倒なためイメージごと移行できるほうが楽)

あわせて読みたい
GitLab実践ガイド impress top gearシリーズ | 北山 晋吾 | 工学 | Kindleストア | Amazon Amazonで北山 晋吾のGitLab実践ガイド impress top gearシリーズ。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォ...

公式Dockerイメージを使えば,

サーバー構築(Apacheやnginx)の設定をしなくていいので,とても楽できます

目次

設定ファイル

GitLabのDockerサービスを構築するため,Docker-composeを使用する.Docker-composeの設定ファイルは以下を使用する.

version: '3'
services:
  gitlab:
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
    ports:
      - '8080:80'
      - '2222:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'

4行目のDockerのイメージは,Docker Hubから自動的にダウンロードされる.

バージョン指定などがあれば,Tagをlatestから指定のバージョンに変更すると良い(以下リンクからタグを探す).

https://hub.docker.com/r/gitlab/gitlab-ee/tags?page=1&ordering=last_updated

構築方法(コマンド)

# export GITLAB_HOME=/srv/gitlab
# docker-compose up -d
Creating network "docker_default" with the default driver
Creating docker_gitlab_1 ... done
# docker-compose exec gitlab gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
 GitLab:       14.0.5-ee (b044f06e4dd) EE
 GitLab Shell: 13.19.0
 PostgreSQL:   12.6
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.3.2)
irb(main):001:0>

ログイン用のRootパスワードを変更するために,上記のコンソール画面で以下の順で入力する.
[secret_pass]は設定したいパスワードを意味する.

user = User.where(id: 1).first
user.password = 'secret_pass'
user.password_confirmation = 'secret_pass'
user.save!

rootパスワードを設定していないとログインできないので,必ず変更し設定する.

GitLabサーバへのアクセス方法

ブラウザを開いて,アドレスバーに”設定したexternal_url”を入力し,アクセスする.

ローカル環境の場合,アドレスバーに”localhost”と入力することで,アクセスできる.

初めてログインするときは,ユーザ名は[root]で,パスワードは上述した方法で設定したパスワードである.

502エラーへの対処

以下のようなエラーが発生する場合がある.

サーバが立ち上がっていないことが原因の場合が多いので,数分待つことで立ち上がる.数分待っても立ち上がらない場合は,再起動する.

メールサーバの設定

/etc/gitlab/gitlab.rbの最後に以下を追記する.
“my.email@gmail.com”と”my-gmail-password”は適宜設定する.

...
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your-email@gmail.com"
gitlab_rails['smtp_password'] = "your-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer' # Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see http://api.rubyonrails.org/classes/ActionMailer/Base.html
# docker-compose exec gitlab gitlab-ctl reconfigure

注意点

Gmailを設定して場合,「重大なセキュリティ通知」のメールが届く場合がある.Googleアカウントで「安全性の低いアプリのアクセス」を有効にすると解決する.(自己責任で)
おそらくHTTPSになっていないのが原因ではないかと推測している.

最後に

内容に誤りや不具合,ご意見があればコメントを残して頂けるとありがたいです

あわせて読みたい
GitLab実践ガイド impress top gearシリーズ | 北山 晋吾 | 工学 | Kindleストア | Amazon Amazonで北山 晋吾のGitLab実践ガイド impress top gearシリーズ。アマゾンならポイント還元本が多数。一度購入いただいた電子書籍は、KindleおよびFire端末、スマートフォ...
あわせて読みたい
Amazon.co.jp: インフラCI実践ガイド Ansible/GitLabを使ったインフラ改善サイクルの実現 eBook : 中島 倫... Amazon.co.jp: インフラCI実践ガイド Ansible/GitLabを使ったインフラ改善サイクルの実現 eBook : 中島 倫明, 佐々木 健太郎, 北山 晋吾, 齊藤 秀喜, 羽深 修: Kindleスト...

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次